diff --git a/.config/checkstyle/checkstyle.xml b/.config/checkstyle/checkstyle.xml index 463a629a..262c9f91 100644 --- a/.config/checkstyle/checkstyle.xml +++ b/.config/checkstyle/checkstyle.xml @@ -79,6 +79,11 @@ + + + + + diff --git a/.config/pmd/java/ruleset.xml b/.config/pmd/java/ruleset.xml index e96576b1..9dc7a0fa 100644 --- a/.config/pmd/java/ruleset.xml +++ b/.config/pmd/java/ruleset.xml @@ -146,7 +146,6 @@ - @@ -164,6 +163,7 @@ + @@ -208,6 +208,36 @@ + + +`Optional#get` can be interpreted as a getter by developers, however this is not the case as it throws an exception when empty. + +It should be replaced by +* doing a mapping directly using `.map` or `.ifPresent` +* using the preferred `.orElseThrow`, `.orElse` or `.or` methods + +Java Developer Brian Goetz also writes regarding this topic: + +> Java 8 was a huge improvement to the platform, but one of the few mistakes we made was the naming of `Optional.get()`, because the name just invites people to call it without calling `isPresent()`, undermining the whole point of using `Optional` in the first place. +> +> During the Java 9 time frame, we proposed to deprecate `Optional.get()`, but the public response to that was ... let's say cold. As a smaller step, we introduced `orElseThrow()` in 10 (see [JDK-8140281](https://bugs.openjdk.java.net/browse/JDK-8140281)) as a more transparently named synonym for the current pernicious behavior of `get()`. IDEs warn on unconditional use of `get()`, but not on `orElseThrow()`, which is a step forward in teaching people to code better. The question is, in a sense, a "glass half empty" view of the current situation; `get()` is still problematic. + + 3 + + + + + + + + + reported.txt && exit 1 || exit 0 + working-directory: .github/workflows + + - name: Find already existing issue + id: find-issue + if: ${{ !cancelled() }} + run: | + echo "number=$(gh issue list -l 'bug' -l 'automated' -L 1 -S 'in:title "Incorrectly configure GHA workflow (prt)"' -s 'open' --json 'number' --jq '.[].number')" >> $GITHUB_OUTPUT + env: + GH_TOKEN: ${{ github.token }} + + - name: Close issue if everything is fine + if: ${{ success() && steps.find-issue.outputs.number != '' }} + run: gh issue close -r 'not planned' ${{ steps.find-issue.outputs.number }} + env: + GH_TOKEN: ${{ github.token }} + + - name: Create report + if: ${{ failure() && steps.check.conclusion == 'failure' }} + run: | + echo 'Detected usage of `pull_request_target`. This event is dangerous and MUST NOT BE USED AT ALL COST!' > reported.md + echo '' >> reported.md + echo '/cc @xdev-software/gha-workflow-security' >> reported.md + echo '' >> reported.md + echo '```' >> reported.md + cat .github/workflows/reported.txt >> reported.md + echo '```' >> reported.md + cat reported.md + + - name: Create Issue From File + if: ${{ failure() && steps.check.conclusion == 'failure' }} + uses: peter-evans/create-issue-from-file@fca9117c27cdc29c6c4db3b86c48e4115a786710 # v6 + with: + issue-number: ${{ steps.find-issue.outputs.number }} + title: 'Incorrectly configure GHA workflow (prt)' + content-filepath: ./reported.md + labels: bug, automated diff --git a/.github/workflows/run-integration-tests.yml b/.github/workflows/run-integration-tests.yml index 03593311..40091bc2 100644 --- a/.github/workflows/run-integration-tests.yml +++ b/.github/workflows/run-integration-tests.yml @@ -69,7 +69,7 @@ jobs: - name: Upload videos of test failures if: failure() - uses: actions/upload-artifact@v6 + uses: actions/upload-artifact@v7 with: name: test-fail-videos-${{ matrix.java }}-${{ env.PROJECT_NORMALIZED }}-${{ matrix.parallel }}-${{ matrix.pre-start }} path: demo/integration-tests/${{ matrix.project }}/target/records diff --git a/.github/workflows/update-from-template.yml b/.github/workflows/update-from-template.yml deleted file mode 100644 index f447710f..00000000 --- a/.github/workflows/update-from-template.yml +++ /dev/null @@ -1,320 +0,0 @@ -name: Update from Template - -# This workflow keeps the repo up to date with changes from the template repo (REMOTE_URL) -# It duplicates the REMOTE_BRANCH (into UPDATE_BRANCH) and tries to merge it into -# this repos default branch (which is checked out here) -# Note that this requires a PAT (Personal Access Token) - at best from a servicing account -# PAT permissions: read:discussion, read:org, repo, workflow -# Also note that you should have at least once merged the template repo into the current repo manually -# otherwise a "refusing to merge unrelated histories" error might occur. - -on: - schedule: - - cron: '55 2 * * 1' - workflow_dispatch: - inputs: - no_automatic_merge: - type: boolean - description: 'No automatic merge' - default: false - -env: - UPDATE_BRANCH: update-from-template - UPDATE_BRANCH_MERGED: update-from-template-merged - REMOTE_URL: https://github.com/xdev-software/standard-maven-template.git - REMOTE_BRANCH: master - -permissions: - contents: write - pull-requests: write - -jobs: - update: - runs-on: ubuntu-latest - timeout-minutes: 60 - outputs: - update_branch_merged_commit: ${{ steps.manage-branches.outputs.update_branch_merged_commit }} - create_update_branch_merged_pr: ${{ steps.manage-branches.outputs.create_update_branch_merged_pr }} - steps: - - uses: actions/checkout@v6 - with: - # Required because otherwise there are always changes detected when executing diff/rev-list - fetch-depth: 0 - # If no PAT is used the following error occurs on a push: - # refusing to allow a GitHub App to create or update workflow `.github/workflows/xxx.yml` without `workflows` permission - token: ${{ secrets.UPDATE_FROM_TEMPLATE_PAT }} - - - name: Init Git - run: | - git config --global user.email "111048771+xdev-gh-bot@users.noreply.github.com" - git config --global user.name "XDEV Bot" - - - name: Manage branches - id: manage-branches - run: | - echo "Adding remote template-repo" - git remote add template ${{ env.REMOTE_URL }} - - echo "Fetching remote template repo" - git fetch template - - echo "Deleting local branches that will contain the updates - if present" - git branch -D ${{ env.UPDATE_BRANCH }} || true - git branch -D ${{ env.UPDATE_BRANCH_MERGED }} || true - - echo "Checking if the remote template repo has new commits" - git rev-list ..template/${{ env.REMOTE_BRANCH }} - - if [ $(git rev-list --count ..template/${{ env.REMOTE_BRANCH }}) -eq 0 ]; then - echo "There are no commits new commits on the template repo" - - echo "Deleting origin branch(es) that contain the updates - if present" - git push -f origin --delete ${{ env.UPDATE_BRANCH }} || true - git push -f origin --delete ${{ env.UPDATE_BRANCH_MERGED }} || true - - echo "create_update_branch_pr=0" >> $GITHUB_OUTPUT - echo "create_update_branch_merged_pr=0" >> $GITHUB_OUTPUT - exit 0 - fi - - echo "Found new commits on the template repo" - - echo "Creating update branch" - git branch ${{ env.UPDATE_BRANCH }} template/${{ env.REMOTE_BRANCH }} - git branch --unset-upstream ${{ env.UPDATE_BRANCH }} - - echo "Pushing update branch" - git push -f -u origin ${{ env.UPDATE_BRANCH }} - - echo "Getting base branch" - base_branch=$(git branch --show-current) - echo "Base branch is $base_branch" - echo "base_branch=$base_branch" >> $GITHUB_OUTPUT - - echo "Trying to create auto-merged branch ${{ env.UPDATE_BRANCH_MERGED }}" - git branch ${{ env.UPDATE_BRANCH_MERGED }} ${{ env.UPDATE_BRANCH }} - git checkout ${{ env.UPDATE_BRANCH_MERGED }} - - echo "Merging branch $base_branch into ${{ env.UPDATE_BRANCH_MERGED }}" - git merge $base_branch && merge_exit_code=$? || merge_exit_code=$? - if [ $merge_exit_code -ne 0 ]; then - echo "Auto merge failed! Manual merge required" - echo "::notice ::Auto merge failed - Manual merge required" - - echo "Cleaning up failed merge" - git merge --abort - git checkout $base_branch - git branch -D ${{ env.UPDATE_BRANCH_MERGED }} || true - - echo "Deleting auto-merge branch - if present" - git push -f origin --delete ${{ env.UPDATE_BRANCH_MERGED }} || true - - echo "create_update_branch_pr=1" >> $GITHUB_OUTPUT - echo "create_update_branch_merged_pr=0" >> $GITHUB_OUTPUT - exit 0 - fi - - echo "Post processing: Trying to automatically fill in template variables" - find . -type f \ - -not -path "./.git/**" \ - -not -path "./.github/workflows/update-from-template.yml" -print0 \ - | xargs -0 sed -i "s/template-placeholder/${GITHUB_REPOSITORY#*/}/g" - - git status - git add --all - - if [[ "$(git status --porcelain)" != "" ]]; then - echo "Filled in template; Committing" - - git commit -m "Fill in template" - fi - - echo "Pushing auto-merged branch" - git push -f -u origin ${{ env.UPDATE_BRANCH_MERGED }} - - echo "update_branch_merged_commit=$(git rev-parse HEAD)" >> $GITHUB_OUTPUT - - echo "Restoring base branch $base_branch" - git checkout $base_branch - - echo "create_update_branch_pr=0" >> $GITHUB_OUTPUT - echo "create_update_branch_merged_pr=1" >> $GITHUB_OUTPUT - echo "try_close_update_branch_pr=1" >> $GITHUB_OUTPUT - - - name: Create/Update PR update_branch - if: steps.manage-branches.outputs.create_update_branch_pr == 1 - env: - GH_TOKEN: ${{ secrets.UPDATE_FROM_TEMPLATE_PAT }} - run: | - gh_pr_up() { - gh pr create -H "${{ env.UPDATE_BRANCH }}" "$@" || (git checkout "${{ env.UPDATE_BRANCH }}" && gh pr edit "$@") - } - gh_pr_up -B "${{ steps.manage-branches.outputs.base_branch }}" \ - --title "Update from template" \ - --body "An automated PR to sync changes from the template into this repo" - - # Ensure that only a single PR is open (otherwise confusion and spam) - - name: Close PR update_branch - if: steps.manage-branches.outputs.try_close_update_branch_pr == 1 - env: - GH_TOKEN: ${{ secrets.UPDATE_FROM_TEMPLATE_PAT }} - run: | - gh pr close "${{ env.UPDATE_BRANCH }}" || true - - - name: Create/Update PR update_branch_merged - if: steps.manage-branches.outputs.create_update_branch_merged_pr == 1 - env: - GH_TOKEN: ${{ secrets.UPDATE_FROM_TEMPLATE_PAT }} - run: | - gh_pr_up() { - gh pr create -H "${{ env.UPDATE_BRANCH_MERGED }}" "$@" || (git checkout "${{ env.UPDATE_BRANCH_MERGED }}" && gh pr edit "$@") - } - gh_pr_up -B "${{ steps.manage-branches.outputs.base_branch }}" \ - --title "Update from template (auto-merged)" \ - --body "An automated PR to sync changes from the template into this repo" - - # Wait a moment so that checks of PR have higher prio than following job - sleep 3 - - # Split into two jobs to help with executor starvation - auto-merge: - needs: [update] - if: needs.update.outputs.create_update_branch_merged_pr == 1 - runs-on: ubuntu-latest - timeout-minutes: 60 - steps: - - uses: actions/checkout@v6 - with: - # Required because otherwise there are always changes detected when executing diff/rev-list - fetch-depth: 0 - # If no PAT is used the following error occurs on a push: - # refusing to allow a GitHub App to create or update workflow `.github/workflows/xxx.yml` without `workflows` permission - token: ${{ secrets.UPDATE_FROM_TEMPLATE_PAT }} - - - name: Init Git - run: | - git config --global user.email "111048771+xdev-gh-bot@users.noreply.github.com" - git config --global user.name "XDEV Bot" - - - name: Checking if auto-merge for PR update_branch_merged can be done - id: auto-merge-check - env: - GH_TOKEN: ${{ secrets.UPDATE_FROM_TEMPLATE_PAT }} - run: | - not_failed_conclusion="skipped|neutral|success" - not_relevant_app_slug="dependabot|github-pages|sonarqubecloud" - - echo "Waiting for checks to start..." - sleep 40s - - for i in {1..20}; do - echo "Checking if PR can be auto-merged. Try: $i" - - echo "Checking if update-branch-merged exists" - git fetch - if [[ $(git ls-remote --heads origin refs/heads/${{ env.UPDATE_BRANCH_MERGED }}) ]]; then - echo "Branch still exists; Continuing..." - else - echo "Branch origin/${{ env.UPDATE_BRANCH_MERGED }} is missing" - exit 0 - fi - - echo "Fetching checks" - cs_response=$(curl -sL \ - --fail-with-body \ - --connect-timeout 60 \ - --max-time 120 \ - -H "Accept: application/vnd.github+json" \ - -H "Authorization: Bearer $GH_TOKEN" \ - -H "X-GitHub-Api-Version: 2022-11-28" \ - https://api.github.com/repos/${{ github.repository }}/commits/${{ needs.update.outputs.update_branch_merged_commit }}/check-suites) - - cs_data=$(echo $cs_response | jq '.check_suites[] | { conclusion: .conclusion, slug: .app.slug, check_runs_url: .check_runs_url }') - echo $cs_data - - if [[ -z "$cs_data" ]]; then - echo "No check suite data - Assuming that there are no checks to run" - - echo "perform=1" >> $GITHUB_OUTPUT - exit 0 - fi - - cs_failed=$(echo $cs_data | jq --arg x "$not_failed_conclusion" 'select ((.conclusion == null or (.conclusion | test($x))) | not)') - if [[ -z "$cs_failed" ]]; then - echo "No check failed so far; Checking if relevant checks are still running" - - cs_relevant_still_running=$(echo $cs_data | jq --arg x "$not_relevant_app_slug" 'select (.conclusion == null and (.slug | test($x) | not))') - if [[ -z $cs_relevant_still_running ]]; then - echo "All relevant checks finished - PR can be merged" - - echo "perform=1" >> $GITHUB_OUTPUT - exit 0 - else - echo "Relevant checks are still running" - echo $cs_relevant_still_running - fi - else - echo "Detected failed check" - echo $cs_failed - - echo "perform=0" >> $GITHUB_OUTPUT - exit 0 - fi - - echo "Waiting before next run..." - sleep 30s - done - - echo "Timed out - Assuming executor starvation - Forcing merge" - echo "perform=1" >> $GITHUB_OUTPUT - - - name: Auto-merge update_branch_merged - if: steps.auto-merge-check.outputs.perform == 1 - run: | - echo "Getting base branch" - base_branch=$(git branch --show-current) - echo "Base branch is $base_branch" - - echo "Fetching..." - git fetch - if [[ $(git rev-parse origin/${{ env.UPDATE_BRANCH_MERGED }}) ]]; then - echo "Branch still exists; Continuing..." - else - echo "Branch origin/${{ env.UPDATE_BRANCH_MERGED }} is missing" - exit 0 - fi - - expected_commit="${{ needs.update.outputs.update_branch_merged_commit }}" - actual_commit=$(git rev-parse origin/${{ env.UPDATE_BRANCH_MERGED }}) - if [[ "$expected_commit" != "$actual_commit" ]]; then - echo "Branch ${{ env.UPDATE_BRANCH_MERGED }} contains unexpected commit $actual_commit" - echo "Expected: $expected_commit" - - exit 0 - fi - - echo "Ensuring that current branch $base_branch is up-to-date" - git pull - - echo "Merging origin/${{ env.UPDATE_BRANCH_MERGED }} into $base_branch" - git merge origin/${{ env.UPDATE_BRANCH_MERGED }} && merge_exit_code=$? || merge_exit_code=$? - if [ $merge_exit_code -ne 0 ]; then - echo "Unexpected merge failure $merge_exit_code - Requires manual resolution" - - exit 0 - fi - - if [[ "${{ inputs.no_automatic_merge }}" == "true" ]]; then - echo "Exiting due no_automatic_merge" - - exit 0 - fi - - echo "Pushing" - git push - - echo "Cleaning up" - git branch -D ${{ env.UPDATE_BRANCH }} || true - git branch -D ${{ env.UPDATE_BRANCH_MERGED }} || true - git push -f origin --delete ${{ env.UPDATE_BRANCH }} || true - git push -f origin --delete ${{ env.UPDATE_BRANCH_MERGED }} || true diff --git a/.idea/externalDependencies.xml b/.idea/externalDependencies.xml index 78be5b8e..0b477b88 100644 --- a/.idea/externalDependencies.xml +++ b/.idea/externalDependencies.xml @@ -3,5 +3,6 @@ + \ No newline at end of file diff --git a/.mvn/wrapper/maven-wrapper.properties b/.mvn/wrapper/maven-wrapper.properties index 8dea6c22..c595b009 100644 --- a/.mvn/wrapper/maven-wrapper.properties +++ b/.mvn/wrapper/maven-wrapper.properties @@ -1,3 +1,3 @@ wrapperVersion=3.3.4 distributionType=only-script -distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.9.12/apache-maven-3.9.12-bin.zip +distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.9.14/apache-maven-3.9.14-bin.zip diff --git a/CHANGELOG.md b/CHANGELOG.md index 363a1d6d..76085061 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,7 @@ +# 2.1.0 +* Renamed `OAuth2AuthenticationTokenUtil` -> `OAuth2AuthenticationTokenExtractor` +* Updated dependencies + # 2.0.0 _Minimum required Java version: 21_ * Updated to Spring Boot 4.x diff --git a/bom/pom.xml b/bom/pom.xml index fc6a40ba..a3f65232 100644 --- a/bom/pom.xml +++ b/bom/pom.xml @@ -6,7 +6,7 @@ software.xdev.sse bom - 2.0.1-SNAPSHOT + 2.1.0-SNAPSHOT pom bom @@ -51,62 +51,62 @@ software.xdev.sse client-storage - 2.0.1-SNAPSHOT + 2.1.0-SNAPSHOT software.xdev.sse crypto-symmetric - 2.0.1-SNAPSHOT + 2.1.0-SNAPSHOT software.xdev.sse crypto-symmetric-managed - 2.0.1-SNAPSHOT + 2.1.0-SNAPSHOT software.xdev.sse codec-sha256 - 2.0.1-SNAPSHOT + 2.1.0-SNAPSHOT software.xdev.sse csp - 2.0.1-SNAPSHOT + 2.1.0-SNAPSHOT software.xdev.sse metrics - 2.0.1-SNAPSHOT + 2.1.0-SNAPSHOT software.xdev.sse oauth2-oidc - 2.0.1-SNAPSHOT + 2.1.0-SNAPSHOT software.xdev.sse oauth2-oidc-remember-me - 2.0.1-SNAPSHOT + 2.1.0-SNAPSHOT software.xdev.sse vaadin - 2.0.1-SNAPSHOT + 2.1.0-SNAPSHOT software.xdev.sse web - 2.0.1-SNAPSHOT + 2.1.0-SNAPSHOT software.xdev.sse web-sidecar-actuator - 2.0.1-SNAPSHOT + 2.1.0-SNAPSHOT software.xdev.sse web-sidecar-common - 2.0.1-SNAPSHOT + 2.1.0-SNAPSHOT diff --git a/client-storage/pom.xml b/client-storage/pom.xml index d61d2a83..3c37f38b 100644 --- a/client-storage/pom.xml +++ b/client-storage/pom.xml @@ -6,7 +6,7 @@ software.xdev.sse client-storage - 2.0.1-SNAPSHOT + 2.1.0-SNAPSHOT jar client-storage @@ -105,7 +105,7 @@ org.apache.maven.plugins maven-compiler-plugin - 3.14.1 + 3.15.0 ${maven.compiler.release} @@ -223,7 +223,7 @@ com.puppycrawl.tools checkstyle - 13.0.0 + 13.4.0 @@ -261,12 +261,12 @@ net.sourceforge.pmd pmd-core - 7.20.0 + 7.23.0 net.sourceforge.pmd pmd-java - 7.20.0 + 7.23.0 diff --git a/codec-sha256/pom.xml b/codec-sha256/pom.xml index 7ddf62fb..dddd7469 100644 --- a/codec-sha256/pom.xml +++ b/codec-sha256/pom.xml @@ -6,7 +6,7 @@ software.xdev.sse codec-sha256 - 2.0.1-SNAPSHOT + 2.1.0-SNAPSHOT jar codec-sha256 @@ -53,7 +53,7 @@ org.junit.jupiter junit-jupiter - 6.0.2 + 6.0.3 test @@ -106,7 +106,7 @@ org.apache.maven.plugins maven-compiler-plugin - 3.14.1 + 3.15.0 ${maven.compiler.release} @@ -150,7 +150,7 @@ org.apache.maven.plugins maven-surefire-plugin - 3.5.4 + 3.5.5 @@ -230,7 +230,7 @@ com.puppycrawl.tools checkstyle - 13.0.0 + 13.4.0 @@ -268,12 +268,12 @@ net.sourceforge.pmd pmd-core - 7.20.0 + 7.23.0 net.sourceforge.pmd pmd-java - 7.20.0 + 7.23.0 diff --git a/crypto-symmetric-managed/pom.xml b/crypto-symmetric-managed/pom.xml index 20d5869a..45aa6f54 100644 --- a/crypto-symmetric-managed/pom.xml +++ b/crypto-symmetric-managed/pom.xml @@ -6,7 +6,7 @@ software.xdev.sse crypto-symmetric-managed - 2.0.1-SNAPSHOT + 2.1.0-SNAPSHOT jar crypto-symmetric-managed @@ -54,7 +54,7 @@ org.springframework.boot spring-boot-dependencies - 4.0.2 + 4.0.5 pom import @@ -132,7 +132,7 @@ org.apache.maven.plugins maven-compiler-plugin - 3.14.1 + 3.15.0 ${maven.compiler.release} @@ -250,7 +250,7 @@ com.puppycrawl.tools checkstyle - 13.0.0 + 13.4.0 @@ -287,12 +287,12 @@ net.sourceforge.pmd pmd-core - 7.20.0 + 7.23.0 net.sourceforge.pmd pmd-java - 7.20.0 + 7.23.0 diff --git a/crypto-symmetric/pom.xml b/crypto-symmetric/pom.xml index 8de1278f..93d99073 100644 --- a/crypto-symmetric/pom.xml +++ b/crypto-symmetric/pom.xml @@ -6,7 +6,7 @@ software.xdev.sse crypto-symmetric - 2.0.1-SNAPSHOT + 2.1.0-SNAPSHOT jar crypto-symmetric @@ -53,7 +53,7 @@ org.junit.jupiter junit-jupiter - 6.0.2 + 6.0.3 test @@ -106,7 +106,7 @@ org.apache.maven.plugins maven-compiler-plugin - 3.14.1 + 3.15.0 ${maven.compiler.release} @@ -150,7 +150,7 @@ org.apache.maven.plugins maven-surefire-plugin - 3.5.4 + 3.5.5 @@ -230,7 +230,7 @@ com.puppycrawl.tools checkstyle - 13.0.0 + 13.4.0 @@ -268,12 +268,12 @@ net.sourceforge.pmd pmd-core - 7.20.0 + 7.23.0 net.sourceforge.pmd pmd-java - 7.20.0 + 7.23.0 diff --git a/csp/pom.xml b/csp/pom.xml index 4d59093d..3b7114a4 100644 --- a/csp/pom.xml +++ b/csp/pom.xml @@ -6,7 +6,7 @@ software.xdev.sse csp - 2.0.1-SNAPSHOT + 2.1.0-SNAPSHOT jar csp @@ -54,7 +54,7 @@ org.springframework.boot spring-boot-dependencies - 4.0.2 + 4.0.5 pom import @@ -121,7 +121,7 @@ org.apache.maven.plugins maven-compiler-plugin - 3.14.1 + 3.15.0 ${maven.compiler.release} @@ -239,7 +239,7 @@ com.puppycrawl.tools checkstyle - 13.0.0 + 13.4.0 @@ -277,12 +277,12 @@ net.sourceforge.pmd pmd-core - 7.20.0 + 7.23.0 net.sourceforge.pmd pmd-java - 7.20.0 + 7.23.0 diff --git a/demo/entities-metamodel/pom.xml b/demo/entities-metamodel/pom.xml index 584c3baf..ab9f96ed 100644 --- a/demo/entities-metamodel/pom.xml +++ b/demo/entities-metamodel/pom.xml @@ -7,13 +7,11 @@ software.xdev.sse.demo demo - 2.0.1-SNAPSHOT + 2.1.0-SNAPSHOT entities-metamodel - ${project.basedir}/../entities/src/main/java - ${project.basedir}/src/gen/java/ src/gen/java/** @@ -25,64 +23,9 @@ software.xdev.sse.demo entities - - - org.hibernate.orm - hibernate-processor - true - - - - org.codehaus.mojo - build-helper-maven-plugin - - - add-source-metamodel - generate-sources - - add-source - - - - ${project.generated.sources} - - - - - - - - org.bsc.maven - maven-processor-plugin - - - process - - process - - generate-sources - - ${metamodel.sourceDir} - ${project.generated.sources} - - - - - - - -implicit:class -AfullyAnnotationConfigured=true -AaddGeneratedAnnotation=false -Aindex=false - - - - org.hibernate.processor.HibernateProcessor - - - - - - + ${project.basedir}/src/gen/java/ diff --git a/demo/entities/pom.xml b/demo/entities/pom.xml index d7a4a0c5..1b6bb821 100644 --- a/demo/entities/pom.xml +++ b/demo/entities/pom.xml @@ -7,7 +7,7 @@ software.xdev.sse.demo demo - 2.0.1-SNAPSHOT + 2.1.0-SNAPSHOT entities @@ -26,4 +26,41 @@ jakarta.validation-api + + + + + org.apache.maven.plugins + maven-compiler-plugin + + + generate-meta-model + + compile + + compile + + + + org.hibernate.orm + hibernate-processor + + + + org.hibernate.processor.HibernateProcessor + + + -proc:only + -AfullyAnnotationConfigured=true + -AaddGeneratedAnnotation=false + -Aindex=false + + ${project.basedir}/../entities-metamodel/src/gen/java/ + + + + + + + diff --git a/demo/integration-tests/pom.xml b/demo/integration-tests/pom.xml index 9d80e7c6..4a80e33f 100644 --- a/demo/integration-tests/pom.xml +++ b/demo/integration-tests/pom.xml @@ -7,12 +7,12 @@ software.xdev.sse.demo demo - 2.0.1-SNAPSHOT + 2.1.0-SNAPSHOT software.xdev.sse.demo.it integration-tests - 2.0.1-SNAPSHOT + 2.1.0-SNAPSHOT pom @@ -31,38 +31,38 @@ software.xdev.sse.demo.it tci-db - 2.0.1-SNAPSHOT + 2.1.0-SNAPSHOT software.xdev.sse.demo.it tci-webapp - 2.0.1-SNAPSHOT + 2.1.0-SNAPSHOT software.xdev.sse.demo.it tci-webapp-rest - 2.0.1-SNAPSHOT + 2.1.0-SNAPSHOT software.xdev.sse.demo.it tci-webapp-vaadin - 2.0.1-SNAPSHOT + 2.1.0-SNAPSHOT software.xdev.sse.demo.it webapp-it-base - 2.0.1-SNAPSHOT + 2.1.0-SNAPSHOT org.seleniumhq.selenium selenium-dependencies-bom - 4.40.0 + 4.41.0 pom import @@ -72,7 +72,7 @@ org.junit junit-bom - 6.0.2 + 6.0.3 pom import @@ -81,17 +81,17 @@ software.xdev testcontainers-selenium - 1.5.1 + 2.0.0 software.xdev testcontainers-advanced-imagebuilder - 2.4.0 + 2.4.1 org.testcontainers testcontainers-bom - 2.0.3 + 2.0.4 pom import @@ -99,7 +99,7 @@ software.xdev.tci bom - 3.0.0 + 3.3.0 pom import diff --git a/demo/integration-tests/tci-db/pom.xml b/demo/integration-tests/tci-db/pom.xml index 54e361e0..c5f58d1b 100644 --- a/demo/integration-tests/tci-db/pom.xml +++ b/demo/integration-tests/tci-db/pom.xml @@ -7,7 +7,7 @@ software.xdev.sse.demo.it integration-tests - 2.0.1-SNAPSHOT + 2.1.0-SNAPSHOT tci-db diff --git a/demo/integration-tests/tci-webapp-rest/pom.xml b/demo/integration-tests/tci-webapp-rest/pom.xml index 077f7a83..15f3a2ca 100644 --- a/demo/integration-tests/tci-webapp-rest/pom.xml +++ b/demo/integration-tests/tci-webapp-rest/pom.xml @@ -7,7 +7,7 @@ software.xdev.sse.demo.it integration-tests - 2.0.1-SNAPSHOT + 2.1.0-SNAPSHOT tci-webapp-rest diff --git a/demo/integration-tests/tci-webapp-vaadin/pom.xml b/demo/integration-tests/tci-webapp-vaadin/pom.xml index 5a6fe0cb..26fa57c6 100644 --- a/demo/integration-tests/tci-webapp-vaadin/pom.xml +++ b/demo/integration-tests/tci-webapp-vaadin/pom.xml @@ -7,7 +7,7 @@ software.xdev.sse.demo.it integration-tests - 2.0.1-SNAPSHOT + 2.1.0-SNAPSHOT tci-webapp-vaadin diff --git a/demo/integration-tests/tci-webapp/pom.xml b/demo/integration-tests/tci-webapp/pom.xml index e3aad322..22b63eb6 100644 --- a/demo/integration-tests/tci-webapp/pom.xml +++ b/demo/integration-tests/tci-webapp/pom.xml @@ -7,7 +7,7 @@ software.xdev.sse.demo.it integration-tests - 2.0.1-SNAPSHOT + 2.1.0-SNAPSHOT tci-webapp diff --git a/demo/integration-tests/tci-webapp/src/main/java/software/xdev/sse/demo/tci/webapp/containers/WebAppContainer.java b/demo/integration-tests/tci-webapp/src/main/java/software/xdev/sse/demo/tci/webapp/containers/WebAppContainer.java index 0579aac8..236cb9dd 100644 --- a/demo/integration-tests/tci-webapp/src/main/java/software/xdev/sse/demo/tci/webapp/containers/WebAppContainer.java +++ b/demo/integration-tests/tci-webapp/src/main/java/software/xdev/sse/demo/tci/webapp/containers/WebAppContainer.java @@ -27,6 +27,14 @@ protected WebAppContainer(final String dockerImageName, final boolean connection this.addExposedPort(DEFAULT_HTTP_PORT); } + public SELF withDebugRootLogger() + { + // Root logger level in Production = INFO and in dev-log = DEBUG + // -> Clashes and "random" log level is selected causing inconsistent behavior + // -> Set explicitly + return this.withEnv("LOGGING_LEVEL_ROOT", "debug"); + } + public SELF withDB(final String jdbcUrl, final String username, final String password) { return this.withEnv("SPRING_DATASOURCE_URL", jdbcUrl) diff --git a/demo/integration-tests/webapp-it-base/pom.xml b/demo/integration-tests/webapp-it-base/pom.xml index bb0a051e..274ea224 100644 --- a/demo/integration-tests/webapp-it-base/pom.xml +++ b/demo/integration-tests/webapp-it-base/pom.xml @@ -7,7 +7,7 @@ software.xdev.sse.demo.it integration-tests - 2.0.1-SNAPSHOT + 2.1.0-SNAPSHOT webapp-it-base diff --git a/demo/integration-tests/webapp-it-base/src/main/java/software/xdev/sse/demo/webapp/base/AbstractBaseTest.java b/demo/integration-tests/webapp-it-base/src/main/java/software/xdev/sse/demo/webapp/base/AbstractBaseTest.java index 432579eb..8bbb0804 100644 --- a/demo/integration-tests/webapp-it-base/src/main/java/software/xdev/sse/demo/webapp/base/AbstractBaseTest.java +++ b/demo/integration-tests/webapp-it-base/src/main/java/software/xdev/sse/demo/webapp/base/AbstractBaseTest.java @@ -9,6 +9,7 @@ import java.util.stream.Stream; import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.extension.AfterTestExecutionCallback; import org.junit.jupiter.api.extension.BeforeTestExecutionCallback; import org.junit.jupiter.api.extension.ExtendWith; import org.junit.jupiter.api.extension.ExtensionContext; @@ -28,13 +29,14 @@ import software.xdev.tci.concurrent.TCIExecutorServiceHolder; import software.xdev.tci.factory.prestart.PreStartableTCIFactory; import software.xdev.tci.factory.registry.TCIFactoryRegistry; +import software.xdev.tci.junit.jupiter.FileSystemFriendlyName; import software.xdev.tci.network.LazyNetworkPool; import software.xdev.tci.oidc.OIDCTCI; import software.xdev.tci.oidc.factory.OIDCTCIFactory; import software.xdev.tci.selenium.BrowserTCI; import software.xdev.tci.selenium.TestBrowser; import software.xdev.tci.selenium.factory.BrowsersTCIFactory; -import software.xdev.tci.selenium.testbase.SeleniumRecordingExtension; +import software.xdev.tci.selenium.testbase.SeleniumRecorder; import software.xdev.tci.tracing.TCITracer; @@ -310,20 +312,10 @@ protected BrowserTCI createBrowserInfra(final MutableCapabilities capabilities, // region Service binding implementations public static class TCSTSeleniumIntegrationTestExtension - extends SeleniumRecordingExtension - implements BeforeTestExecutionCallback + implements BeforeTestExecutionCallback, AfterTestExecutionCallback { private static final Logger LOG = LoggerFactory.getLogger(TCSTSeleniumIntegrationTestExtension.class); - public TCSTSeleniumIntegrationTestExtension() - { - super(context -> context.getTestInstance() - .filter(AbstractBaseTest.class::isInstance) - .map(AbstractBaseTest.class::cast) - .map(AbstractBaseTest::browserInfra) - .orElse(null)); - } - @Override public void beforeTestExecution(final ExtensionContext context) { @@ -331,13 +323,21 @@ public void beforeTestExecution(final ExtensionContext context) } @Override - public void afterTestExecution(final ExtensionContext context) throws Exception + public void afterTestExecution(final ExtensionContext context) { LOG.info("^^^^^^--END TEST--^^^^^^"); final Optional executionExceptionOpt = context.getExecutionException(); executionExceptionOpt.ifPresent(throwable -> LOG.error("Test-Failure", throwable)); - super.afterTestExecution(context); + final FileSystemFriendlyName fileSystemFriendlyName = new FileSystemFriendlyName(context); + + new SeleniumRecorder().afterTestAsync( + context, + context.getTestInstance() + .filter(AbstractBaseTest.class::isInstance) + .map(AbstractBaseTest.class::cast) + .map(AbstractBaseTest::browserInfra), + fileSystemFriendlyName).join(); } } diff --git a/demo/integration-tests/webapp-rest-it/pom.xml b/demo/integration-tests/webapp-rest-it/pom.xml index 22e29d9a..0f13494c 100644 --- a/demo/integration-tests/webapp-rest-it/pom.xml +++ b/demo/integration-tests/webapp-rest-it/pom.xml @@ -7,7 +7,7 @@ software.xdev.sse.demo.it integration-tests - 2.0.1-SNAPSHOT + 2.1.0-SNAPSHOT webapp-rest-it diff --git a/demo/integration-tests/webapp-rest-it/src/test/java/software/xdev/sse/demo/rest/base/BaseTest.java b/demo/integration-tests/webapp-rest-it/src/test/java/software/xdev/sse/demo/rest/base/BaseTest.java index 17f0d6cf..a66c32eb 100644 --- a/demo/integration-tests/webapp-rest-it/src/test/java/software/xdev/sse/demo/rest/base/BaseTest.java +++ b/demo/integration-tests/webapp-rest-it/src/test/java/software/xdev/sse/demo/rest/base/BaseTest.java @@ -11,7 +11,9 @@ abstract class BaseTest extends AbstractBaseTest { protected static final RestWebAppTCIFactory APP_INFRA_FACTORY = - new RestWebAppTCIFactory(c -> c.withDB( + new RestWebAppTCIFactory(c -> c + .withDebugRootLogger() + .withDB( DBTCI.getInternalJDBCUrl(DNS_NAME_DB), DBTCI.DB_USERNAME, DBTCI.DB_PASSWORD diff --git a/demo/integration-tests/webapp-vaadin-it/pom.xml b/demo/integration-tests/webapp-vaadin-it/pom.xml index 8ae9f6da..51e69127 100644 --- a/demo/integration-tests/webapp-vaadin-it/pom.xml +++ b/demo/integration-tests/webapp-vaadin-it/pom.xml @@ -7,7 +7,7 @@ software.xdev.sse.demo.it integration-tests - 2.0.1-SNAPSHOT + 2.1.0-SNAPSHOT webapp-vaadin-it diff --git a/demo/integration-tests/webapp-vaadin-it/src/test/java/software/xdev/sse/demo/vaadin/base/BaseTest.java b/demo/integration-tests/webapp-vaadin-it/src/test/java/software/xdev/sse/demo/vaadin/base/BaseTest.java index cc859c4d..7fe2dc35 100644 --- a/demo/integration-tests/webapp-vaadin-it/src/test/java/software/xdev/sse/demo/vaadin/base/BaseTest.java +++ b/demo/integration-tests/webapp-vaadin-it/src/test/java/software/xdev/sse/demo/vaadin/base/BaseTest.java @@ -20,17 +20,19 @@ @SuppressWarnings("java:S1117") abstract class BaseTest extends AbstractBaseTest { - protected static final Consumer - APP_CONTAINER_BUILDER = c -> c.withDB( - DBTCI.getInternalJDBCUrl(DNS_NAME_DB), - DBTCI.DB_USERNAME, - DBTCI.DB_PASSWORD - ) - .withAuth( - OIDCTCI.CLIENT_ID, - OIDCTCI.CLIENT_SECRET, - OIDCTCI.getInternalHttpBaseEndPoint(DNS_NAME_OIDC) - ); + protected static final Consumer APP_CONTAINER_BUILDER = + c -> c + .withDebugRootLogger() + .withDB( + DBTCI.getInternalJDBCUrl(DNS_NAME_DB), + DBTCI.DB_USERNAME, + DBTCI.DB_PASSWORD + ) + .withAuth( + OIDCTCI.CLIENT_ID, + OIDCTCI.CLIENT_SECRET, + OIDCTCI.getInternalHttpBaseEndPoint(DNS_NAME_OIDC) + ); protected static final VaadinWebAppPreStartableTCIFactory APP_INFRA_FACTORY = new VaadinWebAppPreStartableTCIFactory(APP_CONTAINER_BUILDER); diff --git a/demo/integration-tests/webapp-vaadin-it/src/test/java/software/xdev/sse/demo/vaadin/cases/LoginOIDCTest.java b/demo/integration-tests/webapp-vaadin-it/src/test/java/software/xdev/sse/demo/vaadin/cases/LoginOIDCTest.java index 3e242b0f..45fe42d0 100644 --- a/demo/integration-tests/webapp-vaadin-it/src/test/java/software/xdev/sse/demo/vaadin/cases/LoginOIDCTest.java +++ b/demo/integration-tests/webapp-vaadin-it/src/test/java/software/xdev/sse/demo/vaadin/cases/LoginOIDCTest.java @@ -60,6 +60,8 @@ void checkReLoginShouldKeepUrl(final TestBrowser browser) this.loginAndGotoMainSite(); this.navigateTo("another"); + this.waitUntil(ExpectedConditions.urlToBe(this.getWebAppBaseUrl() + "/another")); + // Delete all cookies of the CURRENT domain this.ensureAllCookiesDeleted(); this.getWebDriver().navigate().refresh(); diff --git a/demo/persistence/pom.xml b/demo/persistence/pom.xml index f1d00939..d71d57c0 100644 --- a/demo/persistence/pom.xml +++ b/demo/persistence/pom.xml @@ -7,7 +7,7 @@ software.xdev.sse.demo demo - 2.0.1-SNAPSHOT + 2.1.0-SNAPSHOT persistence diff --git a/demo/pom.xml b/demo/pom.xml index 8e0d74b9..91e4d04d 100644 --- a/demo/pom.xml +++ b/demo/pom.xml @@ -6,7 +6,7 @@ software.xdev.sse.demo demo - 2.0.1-SNAPSHOT + 2.1.0-SNAPSHOT pom @@ -22,9 +22,9 @@ UTF-8 - 25.0.3 + 25.1.1 - 4.0.2 + 4.0.5 @@ -43,25 +43,25 @@ software.xdev.sse.demo entities - 2.0.1-SNAPSHOT + 2.1.0-SNAPSHOT software.xdev.sse.demo entities-metamodel - 2.0.1-SNAPSHOT + 2.1.0-SNAPSHOT software.xdev.sse.demo persistence - 2.0.1-SNAPSHOT + 2.1.0-SNAPSHOT software.xdev.sse.demo webapp-shared - 2.0.1-SNAPSHOT + 2.1.0-SNAPSHOT @@ -82,7 +82,7 @@ org.springdoc springdoc-openapi-starter-webmvc-ui - 3.0.1 + 3.0.2 @@ -97,7 +97,7 @@ org.junit junit-bom - 6.0.2 + 6.0.3 pom import @@ -138,27 +138,27 @@ software.xdev.sse csp - 2.0.1-SNAPSHOT + 2.1.0-SNAPSHOT software.xdev.sse oauth2-oidc - 2.0.1-SNAPSHOT + 2.1.0-SNAPSHOT software.xdev.sse oauth2-oidc-remember-me - 2.0.1-SNAPSHOT + 2.1.0-SNAPSHOT software.xdev.sse vaadin - 2.0.1-SNAPSHOT + 2.1.0-SNAPSHOT software.xdev.sse web-sidecar-actuator - 2.0.1-SNAPSHOT + 2.1.0-SNAPSHOT @@ -184,13 +184,13 @@ org.apache.maven.plugins maven-surefire-plugin - 3.5.4 + 3.5.5 org.apache.maven.plugins maven-compiler-plugin - 3.14.1 + 3.15.0 ${maven.compiler.release} @@ -199,20 +199,6 @@ - - - org.codehaus.mojo - build-helper-maven-plugin - 3.6.1 - - - - - org.bsc.maven - maven-processor-plugin - 5.1 - - org.springframework.boot @@ -224,7 +210,7 @@ io.github.git-commit-id git-commit-id-maven-plugin - 9.0.2 + 9.1.0 @@ -249,7 +235,7 @@ com.puppycrawl.tools checkstyle - 13.0.0 + 13.4.0 @@ -290,12 +276,12 @@ net.sourceforge.pmd pmd-core - 7.20.0 + 7.23.0 net.sourceforge.pmd pmd-java - 7.20.0 + 7.23.0 diff --git a/demo/webapp-rest/pom.xml b/demo/webapp-rest/pom.xml index 856fd7db..c1aa402c 100644 --- a/demo/webapp-rest/pom.xml +++ b/demo/webapp-rest/pom.xml @@ -7,7 +7,7 @@ software.xdev.sse.demo demo - 2.0.1-SNAPSHOT + 2.1.0-SNAPSHOT webapp-rest diff --git a/demo/webapp-shared/pom.xml b/demo/webapp-shared/pom.xml index 30955cee..57017ac4 100644 --- a/demo/webapp-shared/pom.xml +++ b/demo/webapp-shared/pom.xml @@ -7,7 +7,7 @@ software.xdev.sse.demo demo - 2.0.1-SNAPSHOT + 2.1.0-SNAPSHOT webapp-shared diff --git a/demo/webapp-vaadin/pom.xml b/demo/webapp-vaadin/pom.xml index e071fafc..0238a2e2 100644 --- a/demo/webapp-vaadin/pom.xml +++ b/demo/webapp-vaadin/pom.xml @@ -7,7 +7,7 @@ software.xdev.sse.demo demo - 2.0.1-SNAPSHOT + 2.1.0-SNAPSHOT webapp-vaadin diff --git a/metrics/pom.xml b/metrics/pom.xml index 899a6e2d..c0f9198f 100644 --- a/metrics/pom.xml +++ b/metrics/pom.xml @@ -6,7 +6,7 @@ software.xdev.sse metrics - 2.0.1-SNAPSHOT + 2.1.0-SNAPSHOT jar metrics @@ -54,7 +54,7 @@ org.springframework.boot spring-boot-dependencies - 4.0.2 + 4.0.5 pom import @@ -116,7 +116,7 @@ org.apache.maven.plugins maven-compiler-plugin - 3.14.1 + 3.15.0 ${maven.compiler.release} @@ -234,7 +234,7 @@ com.puppycrawl.tools checkstyle - 13.0.0 + 13.4.0 @@ -272,12 +272,12 @@ net.sourceforge.pmd pmd-core - 7.20.0 + 7.23.0 net.sourceforge.pmd pmd-java - 7.20.0 + 7.23.0 diff --git a/oauth2-oidc-remember-me/pom.xml b/oauth2-oidc-remember-me/pom.xml index 847f5d09..ac3dcc88 100644 --- a/oauth2-oidc-remember-me/pom.xml +++ b/oauth2-oidc-remember-me/pom.xml @@ -6,7 +6,7 @@ software.xdev.sse oauth2-oidc-remember-me - 2.0.1-SNAPSHOT + 2.1.0-SNAPSHOT jar oauth2-oidc-remember-me @@ -54,7 +54,7 @@ org.springframework.boot spring-boot-dependencies - 4.0.2 + 4.0.5 pom import @@ -87,7 +87,7 @@ org.junit.jupiter junit-jupiter - 6.0.2 + 6.0.3 test @@ -140,7 +140,7 @@ org.apache.maven.plugins maven-compiler-plugin - 3.14.1 + 3.15.0 ${maven.compiler.release} @@ -184,7 +184,7 @@ org.apache.maven.plugins maven-surefire-plugin - 3.5.4 + 3.5.5 @@ -264,7 +264,7 @@ com.puppycrawl.tools checkstyle - 13.0.0 + 13.4.0 @@ -302,12 +302,12 @@ net.sourceforge.pmd pmd-core - 7.20.0 + 7.23.0 net.sourceforge.pmd pmd-java - 7.20.0 + 7.23.0 diff --git a/oauth2-oidc-remember-me/src/main/java/software/xdev/sse/oauth2/rememberme/OAuth2CookieRememberMeServices.java b/oauth2-oidc-remember-me/src/main/java/software/xdev/sse/oauth2/rememberme/OAuth2CookieRememberMeServices.java index 3e124381..b6112cc1 100644 --- a/oauth2-oidc-remember-me/src/main/java/software/xdev/sse/oauth2/rememberme/OAuth2CookieRememberMeServices.java +++ b/oauth2-oidc-remember-me/src/main/java/software/xdev/sse/oauth2/rememberme/OAuth2CookieRememberMeServices.java @@ -64,7 +64,7 @@ import software.xdev.sse.oauth2.rememberme.secrets.AuthRememberMeSecretService; import software.xdev.sse.oauth2.rememberme.serializer.OAuth2CookieRememberMeAuthSerializer; import software.xdev.sse.oauth2.util.FastCookieFinder; -import software.xdev.sse.oauth2.util.OAuth2AuthenticationTokenUtil; +import software.xdev.sse.oauth2.util.OAuth2AuthenticationTokenExtractor; import software.xdev.sse.web.cookie.CookieSecureService; @@ -256,8 +256,8 @@ public Authentication autoLogin(final HttpServletRequest request, final HttpServ return null; } - final Cookie idCookie = optIdCookie.get(); - final Cookie payloadCookie = optPayloadCookie.get(); + final Cookie idCookie = optIdCookie.orElseThrow(); + final Cookie payloadCookie = optPayloadCookie.orElseThrow(); try { @@ -419,7 +419,7 @@ protected void validateDecodedData( final AuthRememberMeSecret authRememberMeSecret) { // token.getAuthorizedClientRegistrationId() was already validate during deserialization - final String email = OAuth2AuthenticationTokenUtil.getEmailAttribute(token); + final String email = OAuth2AuthenticationTokenExtractor.getEmailAttribute(token); if(!authRememberMeSecret.userEmailAddress().equals(email)) { throw new AutoLoginException( @@ -558,7 +558,7 @@ public void saveAuthToCookie( auth.getName()); } - final String email = OAuth2AuthenticationTokenUtil.getEmailAttribute(auth); + final String email = OAuth2AuthenticationTokenExtractor.getEmailAttribute(auth); if(email == null) { LOG.warn("Unable to save - No email"); @@ -737,13 +737,13 @@ public O postProcess(final O object // Required for filtering correctly in provider protected static class RestoredOAuth2AuthenticationToken extends OAuth2AuthenticationToken { - public RestoredOAuth2AuthenticationToken(final OAuth2AuthenticationToken copyFrom) + protected RestoredOAuth2AuthenticationToken(final OAuth2AuthenticationToken copyFrom) { super(copyFrom.getPrincipal(), copyFrom.getAuthorities(), copyFrom.getAuthorizedClientRegistrationId()); this.setDetails(copyFrom.getDetails()); } - public RestoredOAuth2AuthenticationToken( + protected RestoredOAuth2AuthenticationToken( final OAuth2AuthenticationToken copyFrom, final OAuth2User enrichedUser) { @@ -755,7 +755,7 @@ public RestoredOAuth2AuthenticationToken( protected static class OAuth2CookieRememberMeAuthenticationProvider extends RememberMeAuthenticationProvider { - public OAuth2CookieRememberMeAuthenticationProvider() + protected OAuth2CookieRememberMeAuthenticationProvider() { super("X"); } diff --git a/oauth2-oidc-remember-me/src/test/java/software/xdev/sse/oauth2/rememberme/serializer/DefaultOAuth2CookieRememberMeAuthSerializerTest.java b/oauth2-oidc-remember-me/src/test/java/software/xdev/sse/oauth2/rememberme/serializer/DefaultOAuth2CookieRememberMeAuthSerializerTest.java index 9165de0b..0b124255 100644 --- a/oauth2-oidc-remember-me/src/test/java/software/xdev/sse/oauth2/rememberme/serializer/DefaultOAuth2CookieRememberMeAuthSerializerTest.java +++ b/oauth2-oidc-remember-me/src/test/java/software/xdev/sse/oauth2/rememberme/serializer/DefaultOAuth2CookieRememberMeAuthSerializerTest.java @@ -138,28 +138,28 @@ void performAttack( this.serializeAndDeserialize(serializer, data); } - public static class AttackPerformer + static class AttackPerformer { - public static final String SUCCESS_INDICATOR = "ATTACK_PERF_SUCCESS"; + static final String SUCCESS_INDICATOR = "ATTACK_PERF_SUCCESS"; private String id; // Required for Jackson - public AttackPerformer() + AttackPerformer() { } - public AttackPerformer(final String id) + AttackPerformer(final String id) { this.id = id; } - public String getId() + String getId() { return this.id; } - public void setId(final String id) + void setId(final String id) { this.id = id; diff --git a/oauth2-oidc/pom.xml b/oauth2-oidc/pom.xml index 948368fd..bcd4dfd3 100644 --- a/oauth2-oidc/pom.xml +++ b/oauth2-oidc/pom.xml @@ -6,7 +6,7 @@ software.xdev.sse oauth2-oidc - 2.0.1-SNAPSHOT + 2.1.0-SNAPSHOT jar oauth2-oidc @@ -54,7 +54,7 @@ org.springframework.boot spring-boot-dependencies - 4.0.2 + 4.0.5 pom import @@ -106,7 +106,7 @@ org.junit.jupiter junit-jupiter - 6.0.2 + 6.0.3 test @@ -159,7 +159,7 @@ org.apache.maven.plugins maven-compiler-plugin - 3.14.1 + 3.15.0 ${maven.compiler.release} @@ -203,7 +203,7 @@ org.apache.maven.plugins maven-surefire-plugin - 3.5.4 + 3.5.5 @@ -283,7 +283,7 @@ com.puppycrawl.tools checkstyle - 13.0.0 + 13.4.0 @@ -321,12 +321,12 @@ net.sourceforge.pmd pmd-core - 7.20.0 + 7.23.0 net.sourceforge.pmd pmd-java - 7.20.0 + 7.23.0 diff --git a/oauth2-oidc/src/main/java/software/xdev/sse/oauth2/checkauth/disabledcheck/DefaultEmailOAuth2IsDisabledChecker.java b/oauth2-oidc/src/main/java/software/xdev/sse/oauth2/checkauth/disabledcheck/DefaultEmailOAuth2IsDisabledChecker.java index dce81cfb..87b659e2 100644 --- a/oauth2-oidc/src/main/java/software/xdev/sse/oauth2/checkauth/disabledcheck/DefaultEmailOAuth2IsDisabledChecker.java +++ b/oauth2-oidc/src/main/java/software/xdev/sse/oauth2/checkauth/disabledcheck/DefaultEmailOAuth2IsDisabledChecker.java @@ -23,7 +23,7 @@ import org.springframework.security.oauth2.client.authentication.OAuth2AuthenticationToken; import software.xdev.sse.oauth2.checkauth.EmailBasedOAuth2AuthCheckerUserService; -import software.xdev.sse.oauth2.util.OAuth2AuthenticationTokenUtil; +import software.xdev.sse.oauth2.util.OAuth2AuthenticationTokenExtractor; public class DefaultEmailOAuth2IsDisabledChecker implements OAuth2IsDisabledChecker @@ -38,7 +38,7 @@ public DefaultEmailOAuth2IsDisabledChecker(final EmailBasedOAuth2AuthCheckerUser @Override public boolean isDisabled(@Nullable final OAuth2AuthenticationToken token) { - return Optional.ofNullable(OAuth2AuthenticationTokenUtil.getEmailAttribute(token)) + return Optional.ofNullable(OAuth2AuthenticationTokenExtractor.getEmailAttribute(token)) .map(this.userService::isDisabled) .orElse(true); } diff --git a/oauth2-oidc/src/main/java/software/xdev/sse/oauth2/filter/deauth/DefaultDeAuthApplier.java b/oauth2-oidc/src/main/java/software/xdev/sse/oauth2/filter/deauth/DefaultDeAuthApplier.java index 3234a853..dc61e2a2 100644 --- a/oauth2-oidc/src/main/java/software/xdev/sse/oauth2/filter/deauth/DefaultDeAuthApplier.java +++ b/oauth2-oidc/src/main/java/software/xdev/sse/oauth2/filter/deauth/DefaultDeAuthApplier.java @@ -52,7 +52,7 @@ public void deAuth(final ServletRequest request, final ServletResponse response, .map(ServletRequestAttributes.class::cast); if(optServletRequestAttributes.isPresent()) { - final ServletRequestAttributes servletRequestAttributes = optServletRequestAttributes.get(); + final ServletRequestAttributes servletRequestAttributes = optServletRequestAttributes.orElseThrow(); if(httpServletRequest == null) { httpServletRequest = servletRequestAttributes.getRequest(); diff --git a/oauth2-oidc/src/main/java/software/xdev/sse/oauth2/rememberloginproviderredirect/CookieBasedRememberRedirectOAuth2LoginProvider.java b/oauth2-oidc/src/main/java/software/xdev/sse/oauth2/rememberloginproviderredirect/CookieBasedRememberRedirectOAuth2LoginProvider.java index 1c2192fd..f6a6259f 100644 --- a/oauth2-oidc/src/main/java/software/xdev/sse/oauth2/rememberloginproviderredirect/CookieBasedRememberRedirectOAuth2LoginProvider.java +++ b/oauth2-oidc/src/main/java/software/xdev/sse/oauth2/rememberloginproviderredirect/CookieBasedRememberRedirectOAuth2LoginProvider.java @@ -176,7 +176,7 @@ protected static class CookieBasedLoginUrlAuthenticationEntryPoint extends Login protected final CookieBasedRememberRedirectOAuth2LoginProvider parent; protected final Set loginUrls; - public CookieBasedLoginUrlAuthenticationEntryPoint( + protected CookieBasedLoginUrlAuthenticationEntryPoint( final String loginFormUrl, final CookieBasedRememberRedirectOAuth2LoginProvider parent, final Set loginUrls) @@ -251,7 +251,7 @@ protected static class CookieBasedDefaultRedirectStrategy extends DefaultRedirec { private final CookieBasedRememberRedirectOAuth2LoginProvider parent; - public CookieBasedDefaultRedirectStrategy(final CookieBasedRememberRedirectOAuth2LoginProvider parent) + protected CookieBasedDefaultRedirectStrategy(final CookieBasedRememberRedirectOAuth2LoginProvider parent) { this.parent = parent; } @@ -305,7 +305,7 @@ protected static class CookieLogoutHandler implements LogoutHandler { protected final CookieBasedRememberRedirectOAuth2LoginProvider parent; - public CookieLogoutHandler(final CookieBasedRememberRedirectOAuth2LoginProvider parent) + protected CookieLogoutHandler(final CookieBasedRememberRedirectOAuth2LoginProvider parent) { this.parent = parent; } diff --git a/oauth2-oidc/src/main/java/software/xdev/sse/oauth2/util/OAuth2AuthenticationTokenUtil.java b/oauth2-oidc/src/main/java/software/xdev/sse/oauth2/util/OAuth2AuthenticationTokenExtractor.java similarity index 92% rename from oauth2-oidc/src/main/java/software/xdev/sse/oauth2/util/OAuth2AuthenticationTokenUtil.java rename to oauth2-oidc/src/main/java/software/xdev/sse/oauth2/util/OAuth2AuthenticationTokenExtractor.java index b5f57a4e..28065d42 100644 --- a/oauth2-oidc/src/main/java/software/xdev/sse/oauth2/util/OAuth2AuthenticationTokenUtil.java +++ b/oauth2-oidc/src/main/java/software/xdev/sse/oauth2/util/OAuth2AuthenticationTokenExtractor.java @@ -23,7 +23,7 @@ import org.springframework.security.oauth2.core.oidc.StandardClaimNames; -public final class OAuth2AuthenticationTokenUtil +public final class OAuth2AuthenticationTokenExtractor { @Nullable public static String getEmailAttribute(final OAuth2AuthenticationToken token) @@ -37,7 +37,7 @@ public static String getEmailAttribute(final OAuth2AuthenticationToken token) .orElse(null); } - private OAuth2AuthenticationTokenUtil() + private OAuth2AuthenticationTokenExtractor() { } } diff --git a/pom.xml b/pom.xml index 27507d0e..4aa8b593 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ software.xdev.sse root - 2.0.1-SNAPSHOT + 2.1.0-SNAPSHOT pom @@ -88,7 +88,7 @@ com.puppycrawl.tools checkstyle - 13.0.0 + 13.4.0 @@ -129,12 +129,12 @@ net.sourceforge.pmd pmd-core - 7.20.0 + 7.23.0 net.sourceforge.pmd pmd-java - 7.20.0 + 7.23.0 diff --git a/vaadin/pom.xml b/vaadin/pom.xml index 2a5bfe43..97826859 100644 --- a/vaadin/pom.xml +++ b/vaadin/pom.xml @@ -6,7 +6,7 @@ software.xdev.sse vaadin - 2.0.1-SNAPSHOT + 2.1.0-SNAPSHOT jar vaadin @@ -54,7 +54,7 @@ org.springframework.boot spring-boot-dependencies - 4.0.2 + 4.0.5 pom import @@ -62,7 +62,7 @@ com.vaadin vaadin-bom - 25.0.3 + 25.1.1 pom import @@ -162,7 +162,7 @@ org.apache.maven.plugins maven-compiler-plugin - 3.14.1 + 3.15.0 ${maven.compiler.release} @@ -280,7 +280,7 @@ com.puppycrawl.tools checkstyle - 13.0.0 + 13.4.0 @@ -318,12 +318,12 @@ net.sourceforge.pmd pmd-core - 7.20.0 + 7.23.0 net.sourceforge.pmd pmd-java - 7.20.0 + 7.23.0 diff --git a/web-sidecar-actuator/pom.xml b/web-sidecar-actuator/pom.xml index 883caa89..3feaa179 100644 --- a/web-sidecar-actuator/pom.xml +++ b/web-sidecar-actuator/pom.xml @@ -6,7 +6,7 @@ software.xdev.sse web-sidecar-actuator - 2.0.1-SNAPSHOT + 2.1.0-SNAPSHOT jar web-sidecar-actuator @@ -54,7 +54,7 @@ org.springframework.boot spring-boot-dependencies - 4.0.2 + 4.0.5 pom import @@ -98,7 +98,7 @@ org.junit.jupiter junit-jupiter - 6.0.2 + 6.0.3 test @@ -151,7 +151,7 @@ org.apache.maven.plugins maven-compiler-plugin - 3.14.1 + 3.15.0 ${maven.compiler.release} @@ -195,7 +195,7 @@ org.apache.maven.plugins maven-surefire-plugin - 3.5.4 + 3.5.5 @@ -275,7 +275,7 @@ com.puppycrawl.tools checkstyle - 13.0.0 + 13.4.0 @@ -313,12 +313,12 @@ net.sourceforge.pmd pmd-core - 7.20.0 + 7.23.0 net.sourceforge.pmd pmd-java - 7.20.0 + 7.23.0 diff --git a/web-sidecar-common/pom.xml b/web-sidecar-common/pom.xml index 5e9cc84b..0cc367c5 100644 --- a/web-sidecar-common/pom.xml +++ b/web-sidecar-common/pom.xml @@ -6,7 +6,7 @@ software.xdev.sse web-sidecar-common - 2.0.1-SNAPSHOT + 2.1.0-SNAPSHOT jar web-sidecar-common @@ -54,7 +54,7 @@ org.springframework.boot spring-boot-dependencies - 4.0.2 + 4.0.5 pom import @@ -126,7 +126,7 @@ org.apache.maven.plugins maven-compiler-plugin - 3.14.1 + 3.15.0 ${maven.compiler.release} @@ -244,7 +244,7 @@ com.puppycrawl.tools checkstyle - 13.0.0 + 13.4.0 @@ -282,12 +282,12 @@ net.sourceforge.pmd pmd-core - 7.20.0 + 7.23.0 net.sourceforge.pmd pmd-java - 7.20.0 + 7.23.0 diff --git a/web/pom.xml b/web/pom.xml index 575e2dd8..7e8e2eb5 100644 --- a/web/pom.xml +++ b/web/pom.xml @@ -6,7 +6,7 @@ software.xdev.sse web - 2.0.1-SNAPSHOT + 2.1.0-SNAPSHOT jar web @@ -54,7 +54,7 @@ org.springframework.boot spring-boot-dependencies - 4.0.2 + 4.0.5 pom import @@ -120,7 +120,7 @@ org.apache.maven.plugins maven-compiler-plugin - 3.14.1 + 3.15.0 ${maven.compiler.release} @@ -238,7 +238,7 @@ com.puppycrawl.tools checkstyle - 13.0.0 + 13.4.0 @@ -276,12 +276,12 @@ net.sourceforge.pmd pmd-core - 7.20.0 + 7.23.0 net.sourceforge.pmd pmd-java - 7.20.0 + 7.23.0