Skip to content

feat(security-resource-server): validate external-IdP tokens via remote JWKS#1

Merged
casc84ab merged 2 commits into
mainfrom
feat/external-jwks-decoder
Jun 26, 2026
Merged

feat(security-resource-server): validate external-IdP tokens via remote JWKS#1
casc84ab merged 2 commits into
mainfrom
feat/external-jwks-decoder

Conversation

@casc84ab

Copy link
Copy Markdown
Contributor

Adds jwkSetUri + signatureAlgorithms props; buildDecoder uses external-JWKS (RFC 8725 allowlist) when jwk-set-uri is set, else the unchanged in-memory path. Backward-compatible. Part of the token-handler BFF security extraction landing in 26.06.03.

casc84ab added 2 commits June 25, 2026 10:27
Add an external-IdP mode to the resource server so apps fronting Keycloak/Cognito/etc. no longer
hand-override the ReactiveJwtDecoder:

- ResourceServerProperties: jwk-set-uri (remote JWKS endpoint) + signature-algorithms (RFC 8725
  allowlist, default RS256/PS256/ES256).
- fireflyReactiveJwtDecoder: when jwk-set-uri is set, build NimbusReactiveJwtDecoder.withJwkSetUri
  with the algorithm allowlist; otherwise keep the in-memory KeyManagementPort behaviour UNCHANGED.
  Validators (timestamp/issuer/audience) factored into buildValidators() and applied to both paths.
  @ConditionalOnMissingBean preserved (full override still possible).

Backward compatible: consumers without jwk-set-uri get the exact previous behaviour — the existing
ResourceServerIntegrationTest (in-memory path) stays green; a new unit test asserts the JWKS path is
selected without touching the in-memory key.

Dev version 26.06.03-SNAPSHOT so it coexists with the 26.06.02 release in .m2 without overwriting it;
transitive framework security modules pinned to 26.06.02 (unchanged).
…03 framework release

Drop the hand-rolled pre-release SNAPSHOT version pin and the dependencyManagement
neutralization; the module returns to a clean 26.06.02 pom (the code changes stay).
flywork fwversion bump will take the whole framework to 26.06.03 uniformly.
@casc84ab casc84ab merged commit 02f5081 into main Jun 26, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant