Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 19 additions & 2 deletions .github/workflows/maven.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,11 @@ on:
push:
branches:
- 'main'
- 'develop'

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We do not use the "develop" branch, but that's fine

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is more for forks

- 'release/*'
- 'support/*'
workflow_dispatch:
workflow_call:
Comment thread
duttonw marked this conversation as resolved.

permissions: read-all

Expand All @@ -31,9 +34,10 @@ env:

jobs:
build:
name: Build and Test (JDK ${{ matrix.java }})${{ matrix.profile == '-Pjakartaee11' && ' with Jakarta EE 11' || matrix.profile }}
name: Build and Test (JDK ${{ matrix.java }})${{ matrix.profile == '-Pjakartaee11' && ' (Jakarta EE 11 + Spring 7)' || matrix.profile }}
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
include:
- java: '17'
Expand All @@ -44,6 +48,8 @@ jobs:
profile: '-Pjakartaee11'
- java: '25'
profile: ''
- java: '25'
profile: '-Pjakartaee11'
steps:
- name: Checkout code
uses: actions/checkout@v7
Expand All @@ -53,5 +59,16 @@ jobs:
distribution: temurin
java-version: ${{ matrix.java }}
cache: 'maven'
- name: Maven Verify on Java ${{ matrix.java }}${{ matrix.profile == '-Pjakartaee11' && ' (Jakarta EE 11)' || matrix.profile }}
- name: Maven Verify on Java ${{ matrix.java }}${{ matrix.profile == '-Pjakartaee11' && ' (Jakarta EE 11 + Spring 7)' || matrix.profile }}
run: mvn -B -V -DskipAssembly verify ${{ matrix.profile }} --no-transfer-progress

- name: Test Summary ${{ matrix.java }} ${{ matrix.profile }}
uses: mikepenz/action-junit-report@d9f48fc87bc235f7e214acf696ca5abc0a986f16 #v6.4.2
continue-on-error: true
if: always()
with:
annotate_only: true # forked repo cannot write to checks so just do annotations
report_paths: |
**/surefire-reports/TEST-*.xml
**/failsafe-reports/TEST-*.xml

97 changes: 97 additions & 0 deletions .github/workflows/owasp.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,97 @@
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

name: OWASP checkup

on:
pull_request:
push:
branches:
- 'main'
- 'develop'
- 'release/*'
- 'support/*'
workflow_dispatch: #Allow manual triggers

permissions: read-all

env:
MAVEN_OPTS: -Xmx2048m -Xms1024m
LANG: en_US.utf8

jobs:


owasp:
name: OWASP
runs-on: ubuntu-latest
env:
HAVE_NIST_NVD_API_KEY: ${{ secrets.NIST_NVD_API_KEY != '' }}
steps:
- name: Checkout code
uses: actions/checkout@v7
- name: Setup Java 25
uses: actions/setup-java@v5
with:
distribution: temurin
java-version: 25
cache: 'maven'

- name: Cache NVD Database
id: cache-nvd
uses: actions/cache/restore@v6
with:
path: ~/.m2/repository/org/owasp/dependency-check-data
key: nvd-cache-${{ runner.os }}-owasp-${{ github.run_id }}
restore-keys: |
nvd-cache-${{ runner.os }}-owasp-
nvd-cache-${{ runner.os }}-

- name: OWASP Dependency check update cache via NIST_NVD_API_KEY
if: ${{ env.HAVE_NIST_NVD_API_KEY == 'true' }}
run: mvn -N -V -DskipAssembly -Dmaven.test.skip=true -Powasp-nvd-api -Pdependency-update-only --no-transfer-progress
env:
NIST_NVD_API_KEY: ${{ secrets.NIST_NVD_API_KEY}}

- name: OWASP Dependency check update cache via Mirror
if: ${{ env.HAVE_NIST_NVD_API_KEY == 'false' }}
run: mvn -N -V -DskipAssembly -Dmaven.test.skip=true -Powasp-nvd-mirror -Pdependency-update-only --no-transfer-progress

- name: Cache NVD Database
uses: actions/cache/save@v6
if: ${{ always() }}
with:
path: ~/.m2/repository/org/owasp/dependency-check-data
key: nvd-cache-${{ runner.os }}-owasp-${{ github.run_id }}

- name: OWASP check (Without running tests)
run: mvn -B org.owasp:dependency-check-maven:aggregate -Pdependency-check -Pjakartaee11 --no-transfer-progress

- name: Upload Dependency Check reports
uses: actions/upload-artifact@v7
if: always()
with:
name: dependency-check
path: target/dependency-check*

- name: Add OWASP summary
if: always()
run: |
{
echo "## OWASP Dependency Check"
echo ""
echo "The HTML report has been uploaded as the **dependency-check** artifact."
echo "Download it from the Artifacts section of this workflow run."
} >> "$GITHUB_STEP_SUMMARY"
10 changes: 9 additions & 1 deletion .github/workflows/sonar.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ permissions: read-all
env:
MAVEN_OPTS: -Xmx2048m -Xms1024m
LANG: en_US.utf8
HAVE_SONARCLOUD_TOKEN: ${{ secrets.SONARCLOUD_TOKEN != '' }}

jobs:
sonarcloud:
Expand All @@ -41,7 +42,14 @@ jobs:
distribution: temurin
java-version: 21
cache: 'maven'
- env:
- name: SonarCloud Scan
if: ${{ env.HAVE_SONARCLOUD_TOKEN == 'true' }}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
SONAR_TOKEN: ${{ secrets.SONARCLOUD_TOKEN }}
run: ./mvnw -B verify org.sonarsource.scanner.maven:sonar-maven-plugin:sonar -Pcoverage -DskipAssembly
- name: SonarCloud Scan -- SKIPPED
if: ${{ env.HAVE_SONARCLOUD_TOKEN != 'true' }}
run: |
echo "### SonarCloud not configured" >> $GITHUB_STEP_SUMMARY
echo "secrets.SONARCLOUD_TOKEN not existing, cannot push coverage checks" >> $GITHUB_STEP_SUMMARY
2 changes: 1 addition & 1 deletion plugins/jasperreports/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@
<dependency>
<groupId>net.sf.jasperreports</groupId>
<artifactId>jasperreports</artifactId>
<version>6.21.3</version>
<version>6.21.5</version>
<scope>provided</scope>
<exclusions>
<!-- not necessary to compile and it force dependency convergence issues -->
Expand Down
8 changes: 8 additions & 0 deletions plugins/spring/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,3 +4,11 @@ You will find more details in [documentation](https://struts.apache.org/plugins/

## Installation
Just drop this plugin JAR into `WEB-INF/lib` folder or add it as a Maven dependency.


## Struts & Spring Compatibility Matrix

| Struts Plugin Version | Compatible Spring Version | Spring OSS End of Life (EOL) |
|:----------------------|:---------------------------|:--------------------------------------------|
| **7.1.1** | 6.2.x | 2026-06 (Commercial 2032-06-30) |
| **7.1.1** | 7.0.8 (Jakarta EE 11 only) | 2027-07 (Commercial 2028-07-31) |
78 changes: 73 additions & 5 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -112,7 +112,9 @@
<!-- Maven plugin -->
<maven-javadoc-plugin.version>3.12.0</maven-javadoc-plugin.version>
<maven-surefire-plugin.version>3.5.6</maven-surefire-plugin.version>

<dependencycheck.version>12.2.2</dependencycheck.version>
<owasp.skip>false</owasp.skip>

<!-- dependency versions in alphanumeric order -->
<asm.version>9.10.1</asm.version>
<byte-buddy.version>1.18.11</byte-buddy.version>
Expand All @@ -125,7 +127,7 @@
<log4j2.version>2.26.1</log4j2.version>
<mockito.version>5.23.0</mockito.version>
<ognl.version>3.4.11</ognl.version>
<spring.version>6.2.12</spring.version>
<spring.version>6.2.19</spring.version>
<struts-annotations.version>2.0</struts-annotations.version>
<velocity-tools.version>3.1</velocity-tools.version>
<webjars-bootstrap.version>5.3.7</webjars-bootstrap.version>
Expand Down Expand Up @@ -162,8 +164,8 @@
<profile>
<id>jakartaee11</id>
<properties>
<jakarta-ee.version>11.0.0-M5</jakarta-ee.version>
<spring.version>7.0.5</spring.version>
Comment thread
duttonw marked this conversation as resolved.
<jakarta-ee.version>11.0.0</jakarta-ee.version>
<spring.version>7.0.8</spring.version>
</properties>
</profile>
<profile>
Expand All @@ -173,9 +175,10 @@
<plugin>
<groupId>org.owasp</groupId>
<artifactId>dependency-check-maven</artifactId>
<version>${dependencycheck.version}</version>
<executions>
<execution>
<phase>verify</phase>
<phase>initialize</phase>
<goals>
<goal>check</goal>
</goals>
Expand All @@ -185,6 +188,71 @@
</plugins>
</build>
</profile>
<profile>
<id>dependency-update-only</id>
<build>
<plugins>
<plugin>
<groupId>org.owasp</groupId>
<artifactId>dependency-check-maven</artifactId>
<version>${dependencycheck.version}</version>
<executions>
<execution>
<goals>
<goal>update-only</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<profile>
<!-- -DNIST_NVD_API_KEY=${yourkey} so that owasp runs via api -->
<id>owasp-nvd-api</id>
<activation>
<property>
<name>NIST_NVD_API_KEY</name>
</property>
</activation>
<build>
<plugins>
<plugin>
<groupId>org.owasp</groupId>
<artifactId>dependency-check-maven</artifactId>
<version>${dependencycheck.version}</version>
<configuration>
<suppressionFiles>owasp-suppressions.xml</suppressionFiles>
<failBuildOnCVSS>0</failBuildOnCVSS>
<assemblyAnalyzerEnabled>false</assemblyAnalyzerEnabled>
<nvdApiKey>${NIST_NVD_API_KEY}</nvdApiKey>
<skip>${owasp.skip}</skip>
</configuration>
</plugin>
</plugins>
</build>
</profile>

<profile>
<!-- -Powasp-nvd-mirror so that owasp runs via mirror -->
<id>owasp-nvd-mirror</id>
<build>
<plugins>
<plugin>
<groupId>org.owasp</groupId>
<artifactId>dependency-check-maven</artifactId>
<version>${dependencycheck.version}</version>
<configuration>
<suppressionFiles>owasp-suppressions.xml</suppressionFiles>
<failBuildOnCVSS>0</failBuildOnCVSS>
<assemblyAnalyzerEnabled>false</assemblyAnalyzerEnabled>
<nvdDatafeedUrl>https://dependency-check.github.io/DependencyCheck_Builder/nvd_cache/nvdcve-{0}.json.gz</nvdDatafeedUrl>
<skip>${owasp.skip}</skip>
</configuration>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>coverage</id>
<build>
Expand Down
Loading
Loading