From 1be69300990978bffb31beb1faf567553cea1a3f Mon Sep 17 00:00:00 2001 From: Anton Nikitiuk Date: Mon, 14 Sep 2026 15:45:48 +0300 Subject: [PATCH 1/2] Upgrade example app to Spring Boot 3.x to resolve Dependabot alerts --- .github/workflows/java-ci.yml | 61 +++++++++++++++---- duo-example/pom.xml | 39 +++--------- .../controller/LoginController.java | 2 +- duo-universal-sdk/pom.xml | 2 +- 4 files changed, 58 insertions(+), 46 deletions(-) diff --git a/.github/workflows/java-ci.yml b/.github/workflows/java-ci.yml index 5b954e5..b3a4c22 100644 --- a/.github/workflows/java-ci.yml +++ b/.github/workflows/java-ci.yml @@ -8,14 +8,41 @@ on: - main jobs: - build-and-test: - name: Java CI - test + sdk-build-and-test: + name: SDK - Java ${{ matrix.java-version }} runs-on: ubuntu-latest strategy: matrix: java-version: [8, 11, 17, 21] + steps: + - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 + + - name: Set up Java + uses: actions/setup-java@03ad4de0992f5dab5e18fcb136590ce7c4a0ac95 # v5.6.0 + with: + distribution: 'temurin' + java-version: ${{ matrix.java-version }} + + - name: Build and test SDK + run: mvn -B install -pl duo-universal-sdk + + - name: Lint SDK with checkstyle + run: mvn checkstyle:check -pl duo-universal-sdk + + - name: Verify release profile works + run: mvn -P release package -pl duo-universal-sdk + + example-build-and-test: + name: Example App - Java ${{ matrix.java-version }} + runs-on: ubuntu-latest + needs: sdk-build-and-test + + strategy: + matrix: + java-version: [17, 21] + steps: - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 @@ -28,16 +55,26 @@ jobs: - name: Inject dummy example config working-directory: duo-example run: printf "duo.clientId=DIAAAAAAAAAAAAAAAAAA\nduo.clientSecret=AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nduo.api.host=example.duosecurity.com\nduo.redirect.uri=http://localhost:8080\nduo.failmode=CLOSED\n" > ./src/main/resources/application.properties - - - name: Build and test with Maven - run: mvn -B install - - - name: Lint with checkstyle - run: mvn checkstyle:check - + + - name: Build example app with dependencies + run: mvn -B install -pl duo-example -am + + - name: Lint example with checkstyle + run: mvn checkstyle:check -pl duo-example + - name: Verify example starts working-directory: duo-example run: mvn spring-boot:start - - - name: Verify release profile works - run: mvn -P release package + + ci-pass: + name: CI Pass + runs-on: ubuntu-latest + if: always() + needs: [sdk-build-and-test, example-build-and-test] + steps: + - name: Check job results + run: | + if [[ "${{ needs.sdk-build-and-test.result }}" != "success" || "${{ needs.example-build-and-test.result }}" != "success" ]]; then + echo "One or more jobs failed" + exit 1 + fi diff --git a/duo-example/pom.xml b/duo-example/pom.xml index e780a29..e9e8abe 100644 --- a/duo-example/pom.xml +++ b/duo-example/pom.xml @@ -5,7 +5,7 @@ org.springframework.boot spring-boot-starter-parent - 2.6.15 + 3.4.7 4.0.0 @@ -34,52 +34,27 @@ http://github.com/duosecurity/duo_universal_java/tree/main + + 17 + 17 + + com.duosecurity duo-universal-sdk 1.3.3-SNAPSHOT - - org.springframework - spring-webmvc - 5.3.24 - org.springframework.boot - spring-boot-autoconfigure - 2.6.15 + spring-boot-starter-web - - org.springframework.boot - spring-boot-starter-tomcat - 2.6.15 - - - org.apache.tomcat - tomcat-util-scan - 9.0.21 - org.apache.tomcat.embed tomcat-embed-jasper - 9.0.21 provided - - - org.eclipse.jdt.core.compiler - ecj - 4.6.1 - provided - - - - com.fasterxml.jackson.core - jackson-core - 2.16.0 - diff --git a/duo-example/src/main/java/com/duosecurity/controller/LoginController.java b/duo-example/src/main/java/com/duosecurity/controller/LoginController.java index 8b071ee..369a692 100644 --- a/duo-example/src/main/java/com/duosecurity/controller/LoginController.java +++ b/duo-example/src/main/java/com/duosecurity/controller/LoginController.java @@ -9,7 +9,7 @@ import com.fasterxml.jackson.databind.ObjectMapper; import java.util.HashMap; import java.util.Map; -import javax.annotation.PostConstruct; +import jakarta.annotation.PostConstruct; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.ExceptionHandler; diff --git a/duo-universal-sdk/pom.xml b/duo-universal-sdk/pom.xml index 3f0584a..746a5a5 100644 --- a/duo-universal-sdk/pom.xml +++ b/duo-universal-sdk/pom.xml @@ -139,7 +139,7 @@ org.springframework.boot spring-boot-maven-plugin - 2.3.6.RELEASE + 3.4.7 org.apache.maven.plugins From a2614e5dd55892039d08951acc5f32bb354eea55 Mon Sep 17 00:00:00 2001 From: Anton Nikitiuk Date: Mon, 14 Sep 2026 15:56:43 +0300 Subject: [PATCH 2/2] fixed jakarta import --- .../main/java/com/duosecurity/controller/LoginController.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/duo-example/src/main/java/com/duosecurity/controller/LoginController.java b/duo-example/src/main/java/com/duosecurity/controller/LoginController.java index 369a692..ba5fa3e 100644 --- a/duo-example/src/main/java/com/duosecurity/controller/LoginController.java +++ b/duo-example/src/main/java/com/duosecurity/controller/LoginController.java @@ -7,9 +7,9 @@ import com.duosecurity.model.Token; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; +import jakarta.annotation.PostConstruct; import java.util.HashMap; import java.util.Map; -import jakarta.annotation.PostConstruct; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.ExceptionHandler;