1464 Commits

Author SHA1 Message Date
Sébastien Deleuze
65a14d6c6d Add Jackson 3 support
This commit adds support for Jackson 3 which has the following
major differences with the Jackson 2 one:
 - jackson subpackage instead of jackson2
 - Jackson type prefix instead of Jackson2
 - JsonMapper instead of ObjectMapper
 - For configuration, JsonMapper.Builder instead of ObjectMapper
   since the latter is now immutable
 - Remove custom support for unmodifiable collections
 - Use safe default typing via a PolymorphicTypeValidator

Jackson 3 changes compared to Jackson 2 are documented in
https://cowtowncoder.medium.com/jackson-3-0-0-ga-released-1f669cda529a
and
https://github.com/FasterXML/jackson/blob/main/jackson3/MIGRATING_TO_JACKSON_3.md.

This commit does not cover webauthn which is a special case (uses
jackson sub-package for Jackson 2 support) which will be handled in
a distinct commit.

See gh-17832
Signed-off-by: Sébastien Deleuze <sdeleuze@users.noreply.github.com>
2025-10-19 17:03:19 -05:00
Joe Grandja
fc795a81d4 PAR uses requested scopes on consent
Issue https://github.com/spring-projects/spring-authorization-server/pull/2182
2025-10-17 16:14:31 -04:00
Joe Grandja
4b810a8971 Disallow usage of the openid scope in device authorization requests
Issue https://github.com/spring-projects/spring-authorization-server/pull/2177
2025-10-17 11:41:30 -04:00
Joe Grandja
0d261e9c32 Remove setOidcUserMapper() in OidcUserService and OidcReactiveOAuth2UserService
Closes gh-18060
2025-10-16 16:29:52 -04:00
Josh Cummings
b1a50a25b6 Check If toBuilder Is Implemented
Since RC1 is right around the corner, let's change the API
footprint as little as possible by using reflection to check
if a class has declared toBuilder themselves. If they have, we
can assume that that class's builder will produce that class.

Issue gh-18052
2025-10-16 13:41:45 -06:00
Josh Cummings
4281f6b00b Prevent Duplicate Authorities
Issue gh-17981
2025-10-16 13:41:45 -06:00
Josh Cummings
0fcef6dca2 Add Missing Mock Configuration 2025-10-16 13:41:45 -06:00
Josh Cummings
2e7cdd7b14 Revert "Merge branch 'builder-enhancements'"
This reverts commit 95644fb73cd405ef4fd683e12773289343547fec, reversing
changes made to fbf7bb3be1eb7bff50cf311e8df7a869e7d9d21b.

Reverting this commit will allow us more time to
consider the ideal way to add this support to the public API.
2025-10-16 13:41:45 -06:00
Joe Grandja
af1de950ae Align setRetrieveUserInfo() between OidcUserService and OidcReactiveOAuth2UserService
Closes gh-18057
2025-10-16 15:12:10 -04:00
Joe Grandja
7f29585df4 Remove OidcUserService.setAccessibleScopes()
Closes gh-18056
2025-10-16 15:12:10 -04:00
Josh Cummings
4102007119 Add Builder#authentication
This commit consolidates logic common to applying one
authenticaiton to another. Specifically, it will copy the
authorities in one authentication into the builder instance
of another.

Closes gh-18053
2025-10-15 12:01:11 -06:00
Josh Cummings
e535e61c8b Move toBuilder to BuildableAuthentication
Closes gh-18052
2025-10-15 12:01:11 -06:00
Joe Grandja
fbf7bb3be1 Allow OAuth2AuthorizationRequest to be extended
Closes gh-18049
2025-10-14 16:34:59 -04:00
Ivan Golovko
979ac7c336 Remove cache from (Reactive)OidcIdTokenDecoderFactory
Closes gh-16647

Signed-off-by: iigolovko <iigolovko@ginc-it.ru>
2025-10-14 11:24:54 -04:00
Rob Winch
d18431a78d
Move FACTOR_ constants to FactorGrantedAuthority
Previously GrantedAuthorities had an implicit package tangle because it
was located in ~.core and FactorGrantedAuthority is in ~.core.authority
and FactorGrantedAuthority's authority property was implicitly expected
to be constants found in `GrantedAuthorities`.

This commit moves the constants to the FactorGrantedAuthority which
resolves this tangle. It wasn't initially done because
FactorGrantedAuthority did not exist at that time.

Closes gh-18030
2025-10-10 16:24:46 -05:00
Joe Grandja
586081c125 Revert "Temporarily fix integration tests"
This reverts commit 35f41f87d120efc70e0c764b42b6f6bae5c650e9.

Issue gh-17880
2025-10-10 13:33:42 -04:00
Joe Grandja
1213dbe76f Fix checkstyle 2025-10-09 13:51:50 -04:00
Joe Grandja
3656e7ad8c Add tests to OAuth2AuthorizationServerJackson2ModuleTests 2025-10-09 13:23:38 -04:00
Joe Grandja
1cca9c5822 Enable PKCE by default in authorization server
Closes gh-18020
2025-10-09 09:51:17 -04:00
Joe Grandja
469ed09645 Allow setting Clock in OAuth2TokenGenerator implementations
Closes gh-18017
2025-10-07 16:34:43 -04:00
Joe Grandja
1d7f4c3b11 Polish javadoc for ClientSettings.requireAuthorizationConsent
Issue gh-18016
2025-10-07 11:29:10 -04:00
Joe Grandja
baa3b287d6 Add Predicate for authorizationConsentRequired for device code grant
Introduces customizable Predicate to determine if user consent is
required in device authorization flows. Previously, device consent
handling used fixed logic. Now applications can define custom logic
for skipping or displaying consent pages.

Adds OAuth2DeviceVerificationAuthenticationContext and updates
OAuth2DeviceVerificationAuthenticationProvider with
setAuthorizationConsentRequired method.

Fixes gh-18016

Signed-off-by: Dinesh Gupta <dineshgupta630@outlook.com>
2025-10-07 11:13:30 -04:00
Joe Grandja
51fe7ff737 Return device_code grant metadata when enabled
Issue gh-17998
2025-10-04 05:38:11 -04:00
Rob Winch
3f74991ce9
Authentication adds FactorGrantedAuthority
Closes gh-18001
2025-10-03 15:20:03 -05:00
Joe Grandja
4dfef1483d Polish gh-17507 2025-10-03 13:09:09 -04:00
Rohan Naik
8c65dc93f2 Enable PKCE by default
Closes gh-17507

Signed-off-by: Rohan Naik <rohan.nn1203@gmail.com>
2025-10-03 13:08:04 -04:00
Joe Grandja
54aae36f98 Add support for OAuth 2.0 Protected Resource Metadata
Closes gh-17244
2025-10-02 14:50:17 -04:00
Joe Grandja
f3761aff99 Add support for OAuth 2.0 Dynamic Client Registration Protocol
Closes gh-17964
2025-09-25 16:33:16 -04:00
Rob Winch
b2d76dfe66
Add GrantedAuthorities.FACTOR_*_AUTHORITY
Closes gh-17952
2025-09-24 09:53:56 -05:00
Josh Cummings
6e7a181eac
Polish Authentication Factors
Issue gh-17933
2025-09-19 11:32:28 -06:00
Josh Cummings
758b35df9c
Add Factor Tests for Authentication Providers
Issue gh-17933
2025-09-19 11:32:27 -06:00
Josh Cummings
e8accd0499
Add Factory Authority When Authentication Succeeds
Issue gh-17933
2025-09-19 11:32:26 -06:00
Bernard Budano
02a948da81 Address reviewer requested changes
Closes gh-17806

Signed-off-by: Bernard Budano <bbudano@gmail.com>
2025-09-12 16:19:27 -05:00
Bernard Budano
8e3cf9677c Support @ClientRegistrationId at Class Level
Closes gh-17806

Signed-off-by: Bernard Budano <bbudano@gmail.com>
2025-09-12 16:19:27 -05:00
Joe Grandja
35f41f87d1 Temporarily fix integration tests
Issue gh-17880
2025-09-12 16:20:44 -04:00
Joe Grandja
098574c50e Remove redundant classes
Issue gh-17880
2025-09-12 16:20:43 -04:00
Joe Grandja
cc71be71e5 Move OAuth2AuthorizationServerConfigurer and OAuth2AuthorizationServerConfiguration
Issue gh-17880
2025-09-12 16:20:42 -04:00
Joe Grandja
b5a4cdc9eb Polish OAuth2AuthorizationServerJackson2Module
Issue gh-17880
2025-09-12 16:20:41 -04:00
Joe Grandja
592510c725 Update to @since 7.0
Issue gh-17880
2025-09-12 16:20:41 -04:00
Joe Grandja
e5dc46270a Fix checkstyle
Issue gh-17880
2025-09-12 16:20:39 -04:00
Joe Grandja
6484d1ae25 Update copyright headers to 2004-present
The Spring portfolio is changing to use <inception-year>-present in
the copyright headers to simplify keeping headers up to date. This
commit updates the copyright headers.

The copyright headers were updated using the following find/replace:

Find: (Copyright \d{4})\s*(\-\d{4})? the original author or authors.
Replace: Copyright 2004-present the original author or authors.

Issue gh-17880
2025-09-12 16:20:39 -04:00
Joe Grandja
a620113264 Add test dependencies
Issue gh-17880
2025-09-12 16:20:38 -04:00
Joe Grandja
1ff1d88866 Manual move of spring-projects/spring-authorization-server src/test
Issue gh-17880
2025-09-12 16:20:38 -04:00
Joe Grandja
072f413dd7 Update copyright headers to 2004-present
The Spring portfolio is changing to use <inception-year>-present in
the copyright headers to simplify keeping headers up to date. This
commit updates the copyright headers.

The copyright headers were updated using the following find/replace:

Find: (Copyright \d{4})\s*(\-\d{4})? the original author or authors.
Replace: Copyright 2004-present the original author or authors.

Issue gh-17880
2025-09-12 16:20:37 -04:00
Joe Grandja
327996c964 Add spring-security-oauth2-authorization-server.gradle
Issue gh-17880
2025-09-12 16:20:36 -04:00
Joe Grandja
745e2153ed Manual move of spring-projects/spring-authorization-server src/main
Issue gh-17880
2025-09-12 16:20:36 -04:00
Rob Winch
093e930c32
Merge branch '6.5.x' 2025-09-10 12:00:31 -05:00
Rob Winch
ab634d1099
Merge branch '6.4.x' into 6.5.x 2025-09-10 11:58:55 -05:00
Rob Winch
a79a2b031a
Remove MockWebServer from JwtIssuerAuthenticationManagerResolverTests
This prevents timeouts on GitHub Windows runners due to overtaxed
systems.

Closes gh-17869
2025-09-10 11:56:07 -05:00
Josh Cummings
ed344ece70
Use Fixed Clock
This commit stabilizes time-sensitive tests that
verify the behavior of DPoP iat validation.

Issue gh-14915
2025-09-09 16:22:07 -06:00