Commit Graph

1479 Commits

Author SHA1 Message Date
Armin Krezović 9c352c4b4b Support overriding RestOperations in OidcIdTokenDecoderFactory
Closes gh-14178
2024-01-19 09:24:56 -07:00
Armin Krezović 0041c658de Support overriding WebClient in ReactiveOidcIdTokenDecoderFactory
Closes gh-14178
2024-01-19 09:24:56 -07:00
Marcus Hert Da Coregio 9135cb4fbf Merge branch '6.2.x'
Closes gh-14406
2024-01-05 07:53:50 -03:00
Marcus Hert Da Coregio acaf9ce7e9 Merge branch '6.1.x' into 6.2.x
Closes gh-14405
2024-01-05 07:53:43 -03:00
Marcus Hert Da Coregio d032b23ab7 Make OAuth2AuthorizationExchange serializable
Closes gh-14402
2024-01-05 07:53:28 -03:00
Josh Cummings 1b39c1248a
Merge branch '6.2.x' 2023-12-11 10:21:18 -07:00
Josh Cummings 966c01fa90
Merge branch '6.1.x' into 6.2.x
Closes gh-14278
2023-12-11 10:21:00 -07:00
Josh Cummings c4a99fc942
Merge branch '5.8.x' into 6.1.x
Closes gh-14277
2023-12-11 10:20:38 -07:00
Candelario e896b14046 Dropped Nimbus Error Message
Closes gh-13730
2023-12-11 10:19:02 -07:00
Josh Cummings 10d88cdf28 Polish Introspection Authentication Converter
- Added Reactive Support
- Separated SCOPE claim and authorities work
- Adjusted for style

Issue gh-14198
2023-12-07 15:13:51 -07:00
ahmd-nabil 8279b22940 Add Introspection Authentication Converter
Closes #14198

Signed-off-by: ahmd-nabil <ahm3dnabil99@gmail.com>
2023-12-07 15:13:51 -07:00
Parker Mauney 8e93e4715f Fix typo in getClaimAsMap docstring 2023-11-22 14:02:17 -03:00
Marcus Hert Da Coregio e3ab1c94d7 Use assertj assertions 2023-11-17 09:04:50 -03:00
Marcus Hert Da Coregio a7da9491d9 Use assertj assertions 2023-11-17 09:03:36 -03:00
Steve Riesenberg 447f40949c
Revert unnecessary merges on 6.1.x
This commit removes unnecessary main-branch merges starting from
9f8db22b77 and adds the following
needed commit(s) that were made afterward:

- 4d6ff49b9d
- ed6ff670d1
- c823b00794
- 44fad21363
2023-10-31 15:22:15 -05:00
Steve Riesenberg 9db33f33c7
Revert unnecessary merges on 6.0.x
This commit removes unnecessary main-branch merges starting from
8750608b5b and adds the following
needed commit(s) that were made afterward:

- 5dce82c48b
2023-10-31 15:11:45 -05:00
Steve Riesenberg 975ac10f19
Merge branch '6.1.x'
Closes gh-14042
2023-10-19 16:44:03 -05:00
Steve Riesenberg b4e0873b1e
Merge branch '6.0.x' into 6.1.x
Closes gh-14041
2023-10-19 16:43:21 -05:00
Steve Riesenberg bb732e9d35
Merge branch '5.8.x' into 6.0.x
Closes gh-14040
2023-10-19 16:40:34 -05:00
Steve Riesenberg 5161712c35
Polish gh-13976
Closes gh-13757
2023-10-19 16:40:23 -05:00
Veli Döngelci a6b872dcf3
Fix caching error state in ReactiveRemoteJWKSource 2023-10-19 16:40:13 -05:00
Valeriy Vyrva 0e30b923f8 Check for null value with the appropriate assertion method 2023-10-03 08:16:21 -06:00
Josh Cummings c7ea8c6ac7
Fix Formatting
Issue gh-13654
2023-10-02 17:47:37 -06:00
Josh Cummings a3227f041c
Polish OAuth2AuthorizationManagers
- Add OAuth2ReactiveAuthorizationManagers
- Code to interfaces
- Align error message with the same in
AuthorityAuthorizationManager
- Adjust expectations in tests to confirm an
appropriately constructed authorizaion manager
- Add JavaDoc and reference documentation

Issue gh-13654
2023-10-02 17:26:06 -06:00
Mario Petrovski 2ee8f27997 Fix imports 2023-10-02 17:23:49 -06:00
Mario Petrovski 97ec5c921e Fix imports in tests 2023-10-02 17:23:49 -06:00
Mario Petrovski e1db108cb9 Improvements and unit tests. 2023-10-02 17:23:49 -06:00
Mario Petrovski 5e0ea6ce8a Fix formatting 2023-10-02 17:23:49 -06:00
Mario Petrovski 35e5533a4b Fix formatting 2023-10-02 17:23:49 -06:00
Mario Petrovski e99b37a6cb Fix build 2023-10-02 17:23:49 -06:00
Mario Petrovski 19ae3a765d Make class final 2023-10-02 17:23:49 -06:00
Mario Petrovski 141605cb24 Fix check build issues 2023-10-02 17:23:49 -06:00
Mario Petrovski 926f4a75ba Set the import order correctly 2023-10-02 17:23:49 -06:00
Mario Petrovski 81a708e25f Closes #13754 Add hasScope and hasAnyScope for authorization rules 2023-10-02 17:23:49 -06:00
Marcus Da Coregio 07b6c451fd Merge branch '6.1.x'
Closes gh-13884
2023-09-29 11:47:38 -03:00
Marcus Da Coregio 8adfc9b463 Merge branch '6.0.x' into 6.1.x
Closes gh-13883
2023-09-29 11:46:48 -03:00
Marcus Da Coregio 92c82191c9 Merge branch '5.8.x' into 6.0.x
Closes gh-13882
2023-09-29 11:46:00 -03:00
Marcus Da Coregio 64e2a2ff8b Apply updated Code Style
Closes gh-13881
2023-09-29 11:44:32 -03:00
Josh Cummings cb33fd7850
Add OIDC Back-Channel Logout Support
Closes gh-12570
2023-09-16 15:12:21 -06:00
Steve Riesenberg 5535d17172
Merge branch '6.1.x'
Closes gh-13807
Closes gh-13803
Closes gh-13802
2023-09-12 18:55:42 -05:00
Tim te Beek 9df9cb5aed refactor: AssertJ best practices
Use this link to re-run the recipe: https://app.moderne.io/recipes/builder/bGVuS?organizationId=RGVmYXVsdA%3D%3D

Co-authored-by: Moderne <team@moderne.io>
2023-09-12 16:18:14 -06:00
Steve Riesenberg 74dc3fd7b1
Merge branch '6.0.x' into 6.1.x
Closes gh-13799 in 6.1.x
Closes gh-13801
2023-09-12 17:02:48 -05:00
Steve Riesenberg 771d9cd8b6
Merge branch '5.8.x' into 6.0.x
Closes gh-13799
2023-09-12 17:00:47 -05:00
Steve Riesenberg 9b7a110704
Fix OAuth2AuthenticationExceptionMixinTests on JDK 17
Closes gh-11893
2023-09-12 16:51:47 -05:00
Josh Cummings fed3de8dce Remove Logging of Untrusted Data 2023-08-08 10:02:42 -06:00
Josh Cummings 3307c656f4 Polish
- Added JavaDoc @since attribute
- Added Predicate based test
- Adjusted test names

Issue gh-13427
2023-08-08 10:02:42 -06:00
Baljit Singh e1bae73703 add factory methods for Jwt issuer resolvers
Closes gh-13427
2023-08-08 10:02:42 -06:00
Baljit Singh 7a713cab6f improve performance of Jwt issuer resolvers 2023-08-08 10:02:42 -06:00
Baljit Singh da35fa0485 make logging consistent for Jwt issuer resolvers 2023-08-08 10:02:42 -06:00
Baljit Singh af00be8a3d fix Javadocs for Jwt issuer resolvers 2023-08-08 10:02:42 -06:00
Josh Cummings 6c3636d780
Update Removed Usages
Issue gh-13544
2023-07-14 18:38:58 -06:00
Justin Tay 4c33d53385 Add SupplierClientRegistrationRepository
Closes gh-12967
2023-07-12 15:53:22 -06:00
Josh Cummings a77ef9ecf4
Add ClientAuthenticationMethod#toString
Closes gh-13497
2023-07-12 14:24:26 -06:00
Josh Cummings 80a0ade3e3
Merge branch '6.1.x'
Closes gh-13499
2023-07-12 14:16:08 -06:00
Josh Cummings 8642a170e8
Merge branch '6.0.x' into 6.1.x
Closes gh-13498
2023-07-12 14:15:53 -06:00
Josh Cummings dbf0c66301
Fix Client Authentication Method Error Message
Closes gh-13496
2023-07-12 14:15:31 -06:00
Claudio Nave 52e12ad64b Replace deprecated methods 2023-06-22 13:19:55 -06:00
Krzysztof Krason 9b603b99ab Using modern Java features 2023-06-22 11:24:25 -06:00
Kevin Yue b09a228eaf Make class `OidcClientInitiatedLogoutSuccessHandler` extensible 2023-06-22 11:19:39 -06:00
Josh Cummings 00cf5edef2
Merge branch '6.0.x'
Closes gh-13309
2023-06-12 15:14:24 -06:00
Josh Cummings 5f26daedcb Error On Unsupported Client Authentication Methods
Closes gh-13144
2023-06-12 15:13:13 -06:00
Josh Cummings f843232d84
Merge branch '6.0.x'
Closes gh-13223
2023-05-24 15:32:12 -06:00
Josh Cummings 69b17f3d3f
Merge branch '5.8.x' into 6.0.x
Closes gh-13222
2023-05-24 15:29:39 -06:00
Josh Cummings c1002ff745
Improve Error Handling
Closes gh-13143
2023-05-24 15:29:15 -06:00
Josh Cummings 76eba9bd0c
Add withIssuerLocation
Closes gh-10309
2023-04-12 16:36:15 -06:00
Josh Cummings 9ee8202625
Merge branch '6.0.x'
Closes gh-13006
2023-04-12 12:50:19 -06:00
Josh Cummings b423db5f93
Merge branch '5.8.x' into 6.0.x
Closes gh-13005
2023-04-12 12:46:11 -06:00
Josh Cummings 28be37238d
Merge branch '5.7.x' into 5.8.x
Closes gh-13004
2023-04-12 12:45:28 -06:00
Nick Meverden c4e9fb885d Delay JWSVerificationKeySelector Construction
Updating the NimbusReactiveJwtDecoder.JwkSetUriReactiveJwtDecoderBuilder processor to execute the ConfigurableJWTProcessor customizations before holding a reference to the JWSKeySelector.

Closes gh-12960
2023-04-12 12:45:00 -06:00
Vedran Pavic 6f8ec3df60
Ensure access token isn't resolved from query for form-encoded requests
Closes gh-5668
2023-04-10 17:06:47 -06:00
Josh Cummings 64a1ad5cd6
Merge branch '5.8.x' into 6.0.x 2023-04-04 13:32:34 -06:00
Josh Cummings 5ffebaf12b
Merge branch '5.7.x' into 5.8.x 2023-04-04 13:32:04 -06:00
Josh Cummings 39cee36065
Use SingletonSupplier
Issue gh-9991
2023-04-04 13:25:31 -06:00
Josh Cummings 88540aa52f
Use SingletonSupplier
Issue gh-9991
2023-04-04 13:23:03 -06:00
Marcus Kainth f0ef54050e Add ability to set principalClaimName in ReactiveJwtAuthenticationConverter
Closes #12907
2023-03-27 16:43:30 -06:00
Joe Grandja 55224b58e0 Polish gh-12853 2023-03-20 15:47:00 -04:00
Josh Cummings a7562ad950
Update io.spring.javaformat to 0.0.38
Closes gh-12891
2023-03-20 10:44:35 -06:00
Steve Riesenberg 8c17b978c8
Add support for device authorization response
Closes gh-12852
2023-03-08 17:07:56 -06:00
Geon Park 613b16c247 NimbusReactiveJwtDecoder support mono chain
Supports reactive exception handling when using PublicKeyReactiveJwtDecoderBuilder and SecretKeyReactiveJwtDecoderBuilder
2023-02-07 13:37:23 -07:00
Marcus Da Coregio b237d7ee38 Merge branch '6.0.x'
Closes gh-12621
2023-02-03 12:31:08 -03:00
luamas 7409d14504 fix javax.json.bind.Jsonb to jakarta.json.bind.Jsonb
Closes gh-12616
2023-02-03 12:30:17 -03:00
Josh Cummings e7fb6d2e14
Merge branch '6.0.x'
Closes gh-12496
2023-01-06 12:56:45 -07:00
Josh Cummings 748e912685
Merge branch '5.8.x' into 6.0.x
Closes gh-12495
2023-01-06 12:56:21 -07:00
Josh Cummings 5e1db6a771
Merge branch '5.7.x' into 5.8.x
Closes gh-12494
2023-01-06 12:55:43 -07:00
Jon Kjennbakken 225dc593a8 Polish NimbusJwtDecoderTests
- Add missing mock

Closes gh-12238
2023-01-06 12:53:36 -07:00
Josh Cummings e0e9455f78
Merge branch '6.0.x'
Closes gh-12441
2022-12-19 16:01:26 -07:00
Josh Cummings 7bd6deccc3
Revert "Disable Some R2dbc Tests"
This reverts commit 813179931a.

Closes gh-12339
2022-12-19 15:42:22 -07:00
ch4mpy 7ad4ebd07a
Allow authentication details to be set by converter
Prevent JwtAuthenticationProvider from setting authentication details
when jwtAuthenticationConverter returned an authentication instance
with non null details.

Closes gh-11822
2022-12-12 18:55:08 -06:00
Josh Cummings 7561a02cdd
Merge branch '6.0.x' 2022-12-05 11:13:43 -07:00
Josh Cummings 813179931a
Disable Some R2dbc Tests
Issue gh-12339
2022-12-05 11:13:15 -07:00
Josh Cummings cd0f02de49
Polish authorities claim delimiter
PR gh-12074
2022-12-02 14:30:31 -07:00
Patrick Walter 9c9fd9f4bd
Add configurable authorities split regex
Before this commit splitting the authorities claim was done by a
hardcoded regex " ". This commit allows to configure to set any regex
to split the authorities claim while keeping the previously
hardcoded regex as a default.

Closes gh-12074
2022-12-02 14:30:30 -07:00
Josh Cummings b22bc42bb0
Merge branch '5.8.x' into 6.0.x
Closes gh-12325
2022-11-30 14:50:51 -07:00
Josh Cummings 29c00905ce
Merge branch '5.7.x' into 5.8.x
Closes gh-12324
2022-11-30 14:49:26 -07:00
Josh Cummings 667cab6cda
Merge branch '5.6.x' into 5.7.x
Closes gh-12323
2022-11-30 14:38:16 -07:00
이경욱 52c7141aac
Save Request Before Response Is Committed
Specifically important for cookie-based authorization request
repositories.

Closes gh-11602
2022-11-30 14:33:08 -07:00
Steve Riesenberg bb3d92e33a
Update r2dbc-h2 to 1.0.0.RELEASE
Closes gh-12251
2022-11-18 23:04:38 -06:00
Steve Riesenberg 4e88623873
Polish gh-12087 in 6.0 2022-11-17 14:31:44 -06:00
Steve Riesenberg a3d35ecf3c
Merge branch '5.8.x'
Closes gh-12234
2022-11-17 14:27:41 -06:00
Michael Sosa 52888d6206
Warn when AuthorizationGrantType does not match
Log a warning when AuthorizationGrantType does not exactly match a
pre-defined constant.

Closes gh-11905
2022-11-17 14:17:54 -06:00
Steve Riesenberg ce065a87da
Merge branch '5.8.x'
Closes gh-12207
2022-11-14 12:25:05 -06:00
Steve Riesenberg 71eb71d185
Merge branch '5.7.x' into 5.8.x
Closes gh-12206
2022-11-14 12:11:59 -06:00
Steve Riesenberg 67a1f0836b
Merge branch '5.6.x' into 5.7.x
Closes gh-12205
2022-11-14 12:10:55 -06:00
Steve Riesenberg fde26e003a
Request user info when AS returns no scopes
Closes gh-12144
2022-11-10 16:29:43 -06:00
Josh Cummings 5fe59cc635
Revert "Add configurable authorities split regex"
This reverts commit e93ed6d94c.

This can't be merged until after the 6.0 release
2022-11-01 17:39:26 -06:00
Patrick Walter e93ed6d94c Add configurable authorities split regex
Before this commit splitting the authorities claim was done by a
hardcoded regex " ". This commit allows to configure to set any regex
to split the authorities claim while keeping the previously
hardcoded regex as a default.
2022-11-01 17:38:47 -06:00
Josh Cummings cca999c57d
Merge remote-tracking branch 'origin/5.8.x' 2022-11-01 13:46:08 -06:00
Josh Cummings d29ab8bcae
Merge branch '5.7.x' into 5.8.x 2022-11-01 13:43:40 -06:00
Josh Cummings c94e33b6c8
Merge branch '5.6.x' into 5.7.x 2022-11-01 13:42:35 -06:00
Ger Roza 8315545144 Update RP-Initiated Logout target URLs.
The URLs we're using are not actually pointing to the OIDC RP-Initiated Logout Specs.

Fixes: gh-12081
2022-11-01 12:35:39 -06:00
Steve Riesenberg 801ceb0832
Merge branch '5.8.x' 2022-10-31 08:58:14 -05:00
Steve Riesenberg 66f2f1cde7
Merge branch '5.7.x' into 5.8.x 2022-10-31 08:55:03 -05:00
Steve Riesenberg 2915a70bf7
Merge branch '5.6.x' into 5.7.x 2022-10-28 13:05:48 -05:00
Steve Riesenberg 26a51ee198
Merge branch '5.5.x' into 5.6.x 2022-10-28 11:15:33 -05:00
Steve Riesenberg e7fe778abc
Merge branch '5.4.x' into 5.5.x 2022-10-28 11:13:33 -05:00
Steve Riesenberg 3e2ac82612
Merge branch '5.3.x' into 5.4.x 2022-10-28 11:10:39 -05:00
Steve Riesenberg 5560bbaa80
Merge branch '5.2.x' into 5.3.x 2022-10-28 11:07:51 -05:00
Steve Riesenberg 75004587a4
Fix scope mapping
Issue gh-12101
2022-10-28 11:00:27 -05:00
Josh Cummings f4cc27c375
Change Default for (Server)AuthenticationEntryPointFailureHandler
Closes gh-9429
2022-10-13 20:03:03 -06:00
Josh Cummings 5afc7cb04f
Merge remote-tracking branch 'origin/5.8.x' 2022-10-13 19:48:05 -06:00
Josh Cummings 099aaa33ff
Remove Deprecation Markers
Since Spring Security still needs these methods and classes, we
should wait on deprecating them if we can.

Instead, this commit changes the original classes to have a
boolean property that is currently false, but will switch to true
in 6.0.

At that time, BearerTokenAuthenticationFilter can change to use
the handler.

Closes gh-11932
2022-10-13 19:47:22 -06:00
Daniel Garnier-Moiroux 200b7fecd3
Add (Server)AuthenticationEntryPointFailureHandlerAdapter
Issue gh-11932, gh-9429

(Server)AuthenticationEntryPointFailureHandler should produce HTTP 500 instead
when an AuthenticationServiceException is thrown, instead of HTTP 401.
This commit deprecates the current behavior and introduces an opt-in
(Server)AuthenticationEntryPointFailureHandlerAdapter with the expected
behavior.

BearerTokenAuthenticationFilter uses the new adapter, but with a closure
to keep the current behavior re: entrypoint.
2022-10-13 19:25:04 -06:00
Josh Cummings 14584b0562
Add SecurityContextHolderStrategy to OAuth2
Issue gh-11060
2022-10-05 23:50:54 -06:00
Marcus Da Coregio 7f0140278e Add native hint for OAuth2 Client's schemas
Closes gh-11920
2022-09-29 10:01:51 -03:00
Steve Riesenberg 181ee7410b
Change default authority for oauth2Login()
Previously, the default authority was ROLE_USER when using
oauth2Login() for both OAuth2 and OIDC providers.

* Default authority for OAuth2UserAuthority is now OAUTH2_USER
* Default authority for OidcUserAuthority is now OIDC_USER

Documentation has been updated to include this implementation detail.

Closes gh-7856
2022-09-26 10:06:31 -05:00
Steve Riesenberg 7527fd811c
Merge branch '5.8.x' 2022-09-26 09:56:55 -05:00
Steve Riesenberg bbac85e20b Reduce severity of invalid registrationId to warn
This prevents filling the log file with error messages when routine
scans are being performed.

Closes gh-11344
2022-09-26 09:56:20 -05:00
Josh Cummings ae6fb8c681
Add Deprecated Versions of Original Classes
Issue gh-7349
2022-09-23 16:31:22 -06:00
Josh Cummings 37a160245f
Adjust OAuth2 Resource Server packaging
Closes gh-7349
2022-09-23 16:31:21 -06:00
Josh Cummings 53dbcfd457
Add Deprecated Versions of Original Classes
Issue gh-7349
2022-09-23 12:06:59 -06:00
Steve Riesenberg 3c66ef6305
Change default SecurityContextRepository
Save SecurityContext in request attributes for stateless session
management using RequestAttributeSecurityContextRepository.

Closes gh-11026
2022-09-22 17:31:14 -05:00
Josh Cummings 70460ca009
Adjust OAuth2 Resource Server packaging
Closes gh-7349
2022-09-20 17:44:05 -06:00
Marcus Da Coregio fee1ffa422 Fix JSONObject and JSONArray imports in tests
Issue gh-11858
2022-09-16 15:57:43 -03:00
Steve Riesenberg 67a00bcaa0
Fix JSONObject and JSONArray imports in tests 2022-09-16 13:38:57 -05:00
Steve Riesenberg c6458c35aa
Merge branch '5.8.x' 2022-09-14 15:12:21 -05:00
Daniel Garnier-Moiroux bea7761a1c
ClientRegistrations#rest defines 30s connect and read timeouts 2022-09-14 15:10:34 -05:00
Steve Riesenberg 2431dd1103
Merge branch '5.8.x' 2022-09-13 17:38:10 -05:00
Steve Riesenberg 355ef21117
Polish gh-11665 2022-09-13 16:45:39 -05:00
ch4mpy 1efb63387f
Add authentication converter for introspected tokens
Adds configurable authentication converter for resource-servers with
token introspection (something very similar to what
JwtAuthenticationConverter does for resource-servers with JWT decoder).

The new (Reactive)OpaqueTokenAuthenticationConverter is given
responsibility for converting successful token introspection result
into an Authentication instance (which is currently done by a private
methods of OpaqueTokenAuthenticationProvider and
OpaqueTokenReactiveAuthenticationManager).

The default (Reactive)OpaqueTokenAuthenticationConverter, behave the
same as current private convert(OAuth2AuthenticatedPrincipal principal,
String token) methods: map authorities from scope attribute and build a
BearerTokenAuthentication.

Closes gh-11661
2022-09-13 16:45:36 -05:00
Rob Winch f84f08c4b9 Default HttpSessionRequestCache.matchingRequestParameterName=continue
Closes gh-11757
2022-08-26 14:44:55 -05:00
Rob Winch 32dbaceec5 Fix mockito 4.7.0 merge
Issue gh-11748
2022-08-24 08:58:00 -05:00
Rob Winch 670b71363d Merge branch '5.8.x'
Closes gh-11749
2022-08-23 16:03:50 -05:00
Rob Winch 2fb625db84 Remove mockito deprecations
Issue gh-11748
2022-08-23 15:59:52 -05:00
Steve Riesenberg 7c7f9380c7
Refresh remote JWK when unknown KID error occurs
Closes gh-11621
2022-08-18 16:54:45 -05:00
tinolazreg 888715bbb2
Add tests for unknown KID error
Issue gh-11621
2022-08-18 16:54:45 -05:00
Steve Riesenberg 53a3ff8932
Refresh remote JWK when unknown KID error occurs
Closes gh-11621
2022-08-18 16:53:45 -05:00
tinolazreg 77d11a3f9f
Add tests for unknown KID error
Issue gh-11621
2022-08-18 16:53:44 -05:00
Steve Riesenberg 51dc672625
Refresh remote JWK when unknown KID error occurs
Closes gh-11621
2022-08-18 16:48:42 -05:00
tinolazreg d1c742d7aa
Add tests for unknown KID error
Issue gh-11621
2022-08-18 16:48:41 -05:00
Steve Riesenberg 9c02e835e8 Refresh remote JWK when unknown KID error occurs
Closes gh-11621
2022-08-18 16:42:57 -05:00
tinolazreg 3e73fa6954 Add tests for unknown KID error
Issue gh-11621
2022-08-18 16:42:57 -05:00
Igor Bolic 2e66b9f6cc Allow customization of redirect strategy
The default redirect strategy will provide authorization redirect
URI within HTTP 302 response Location header.
Allowing the configuration of custom redirect strategy will provide
an option for the clients to obtain the authorization URI from e.g.
HTTP response body as JSON payload, without a need to handle
automatic redirection initiated by the HTTP Location header.

Closes gh-11373
2022-08-08 15:44:01 -05:00
Igor Bolic efaee4e56b Allow customization of redirect strategy
The default redirect strategy will provide authorization redirect
URI within HTTP 302 response Location header.
Allowing the configuration of custom redirect strategy will provide
an option for the clients to obtain the authorization URI from e.g.
HTTP response body as JSON payload, without a need to handle
automatic redirection initiated by the HTTP Location header.

Closes gh-11373
2022-08-08 15:35:49 -05:00
Joe Grandja b5b3ddd6b4 Deprecate Resource Owner Password Credentials grant
Closes gh-11590
2022-07-15 16:45:00 -04:00
Joe Grandja 95155ddb0c Deprecate Resource Owner Password Credentials grant
Closes gh-11590
2022-07-15 16:28:47 -04:00
Joe Grandja 6ee1643bae Remove deprecations in ServerOAuth2AuthorizedClientExchangeFilterFunction
Closes gh-11589
2022-07-15 15:13:40 -04:00
Joe Grandja 054791c26c Remove deprecations in ServletOAuth2AuthorizedClientExchangeFilterFunction
Closes gh-11588
2022-07-15 15:12:39 -04:00
Joe Grandja 65db5fa028 Remove deprecations in JwtAuthenticationConverter
Closes gh-11587
2022-07-15 14:43:08 -04:00
Joe Grandja 1ac6054e6f Remove deprecations in OidcUserInfo
Closes gh-11586
2022-07-15 14:42:54 -04:00
Joe Grandja 6b41faaf55 Remove deprecations in ClaimAccessor
Closes gh-11585
2022-07-15 14:42:33 -04:00
Joe Grandja 0859da5590 Remove deprecations in OAuth2AuthorizedClientArgumentResolver
Closes gh-11584
2022-07-15 14:42:03 -04:00
Joe Grandja 743b6a5bfe Remove deprecations in OidcClientInitiatedLogoutSuccessHandler
Closes gh-11565
2022-07-15 14:04:09 -04:00
Joe Grandja cae22867b2 Remove deprecated allowMultipleAuthorizationRequests
Closes gh-11564
2022-07-15 13:50:30 -04:00
Joe Grandja 0e291a3295 Remove deprecations in AuthorizationRequestRepository
Closes gh-11519
2022-07-15 08:15:52 -04:00
Joe Grandja e12823095f Remove deprecations in ClientRegistration
Closes gh-11518
2022-07-15 08:15:30 -04:00
Joe Grandja 61b034bf69 Remove deprecations in AbstractOAuth2AuthorizationGrantRequest
Closes gh-11517
2022-07-15 08:14:56 -04:00
Joe Grandja be58e2ac49 Remove deprecations in ClientAuthenticationMethod
Closes gh-11516
2022-07-15 07:45:33 -04:00
Joe Grandja 8c12c3dad0 Remove deprecated converters in OAuth2AccessTokenResponseHttpMessageConverter
Closes gh-11513
2022-07-14 16:55:53 -04:00
Joe Grandja 746d27eab1 Remove deprecated NimbusAuthorizationCodeTokenResponseClient
Closes gh-11512
2022-07-14 16:32:21 -04:00
Joe Grandja 42683693c0 Remove deprecated CustomUserTypesOAuth2UserService
Closes gh-11511
2022-07-14 14:28:41 -04:00
Joe Grandja 67b27a41c3 Remove deprecated UnAuthenticatedServerOAuth2AuthorizedClientRepository
Closes gh-11508
2022-07-14 12:10:58 -04:00
Joe Grandja f5a436df80 Remove deprecated NimbusJwtDecoderJwkSupport
Closes gh-11507
2022-07-14 12:09:59 -04:00
Joe Grandja a3326fc0ee Remove deprecated implicit authorization grant type
Closes gh-11506
2022-07-14 10:05:15 -04:00
Joe Grandja 7df9c6eba5 Use OAuth2Token instead of AbstractOAuth2Token
Closes gh-10959
2022-07-13 16:48:28 -04:00
Joe Grandja f87df42500 Remove deprecated OAuth2IntrospectionClaimAccessor
Closes gh-11499
2022-07-13 15:51:58 -04:00
Joe Grandja 7b18336c6a Change interface with constants to final class
Closes gh-10960
2022-07-13 15:51:58 -04:00
Marcus Da Coregio ecbfa84b39 Revert "Disable failing tests until r2dbc-h2 is upgraded"
This reverts commit 614065bb3b.
2022-07-13 10:55:12 -03:00
Marcus Da Coregio 8776f66fb9 Update io.r2dbc:r2dbc-h2 to 1.0.0.RC1
Closes gh-11479
2022-07-13 10:55:12 -03:00
Steve Riesenberg 614065bb3b
Disable failing tests until r2dbc-h2 is upgraded
Issue gh-11479
2022-07-11 10:32:38 -05:00
Rivaldi 757fb38147 Fix typo
(cherry picked from commit 80c5ec459befd9292e08a43e30f4aae22f39eeed)
2022-06-27 16:05:50 -06:00
Josh Cummings 1d72a05c32
Add SecurityContextHolderStrategy to OAuth2
Issue gh-11060
2022-06-27 13:05:12 -06:00
Josh Cummings 539a11d0a4
Encode postLogoutRedirectUri query params
Closes gh-11379
2022-06-16 16:13:42 -06:00
Josh Cummings f035c30edb
Encode postLogoutRedirectUri query params
Closes gh-11379
2022-06-16 16:12:13 -06:00
Josh Cummings 01513ab17e
Add placeholders to reactive post_logout_redirect_uri
Now also supports baseScheme, baseHost, basePort, and basePath

Issue gh-11229
2022-06-16 16:10:26 -06:00
Josh Cummings 6f69d85fcb
Reactive OAuth 2.0 logout handler resolves registrationId
Closes gh-11378
2022-06-16 16:09:57 -06:00
Josh Cummings 3f30de388a
Encode postLogoutRedirectUri query params
Closes gh-11379
2022-06-16 16:09:56 -06:00
Michael e4505ed6c8
Add placeholders to post_logout_redirect_uri
Now supports baseScheme, baseHost, basePort, and basePath in addition
to extant baseUrl.

Closes gh-11229
2022-06-16 16:09:56 -06:00
Josh Cummings a8ab432aea
Add placeholders to reactive post_logout_redirect_uri
Now also supports baseScheme, baseHost, basePort, and basePath

Issue gh-11229
2022-06-16 15:58:44 -06:00
Josh Cummings ebb5746f6e
Reactive OAuth 2.0 logout handler resolves registrationId
Closes gh-11378
2022-06-16 15:58:44 -06:00
Josh Cummings 18f7cf5406
Encode postLogoutRedirectUri query params
Closes gh-11379
2022-06-16 15:58:43 -06:00
Michael cb0ab49adc
Add placeholders to post_logout_redirect_uri
Now supports baseScheme, baseHost, basePort, and basePath in addition
to extant baseUrl.

Closes gh-11229
2022-06-16 15:58:35 -06:00
Steve Riesenberg d18291676f
Update copyright year
Issue gh-11372
2022-06-15 13:14:07 -05:00
Steve Riesenberg c7df39a3e6
Fix tests using root cause for exception messages
Closes gh-11372
2022-06-14 17:12:15 -05:00
Jyri-Matti Lähteenmäki ca0a6d9777 Treat URLs as String before equals/hashcode
java.net.URL performs DNS lookups whenever its equals/hashCode is
used. Thus attribute values of type java.net.URL need to be converted
to something else before they are used for equals/hashCode.

Closes gh-10673
2022-06-03 11:36:00 -04:00
Kuby e28fcbfbbe
Change phoneNumberVerified with type Boolean
Closes: gh-11315
2022-06-03 10:23:53 -05:00
Kuby 759d799ddd Change phoneNumberVerified with type Boolean
Closes: gh-11315
2022-06-03 09:46:00 -05:00
Marcus Da Coregio b8b0661d73
Lock Dependencies for Release 2022-05-16 14:01:51 -06:00
Marcus Da Coregio 000b87f9aa Revert "Use Spring Framework version 6.0.0-M3"
This reverts commit b803e845e7.
2022-05-11 08:36:14 -03:00
Marcus Da Coregio 806e05855c Replace removed context-related operators
Closes gh-11194
2022-05-10 14:58:02 -03:00
Marcus Da Coregio b803e845e7 Use Spring Framework version 6.0.0-M3
Closes gh-11193
2022-05-10 14:49:02 -03:00
Marcus Da Coregio 50f8df6f07 Use HttpStatusCode
Closes gh-11091
2022-04-11 09:19:56 -03:00
Marcus Da Coregio e1f649690b Adapt to changes in R2DBC 2022-04-11 09:19:47 -03:00
Steve Riesenberg 8aa7029d07 Fix checkstyle errors
Issue gh-10989
2022-03-18 22:53:29 -05:00
Steve Riesenberg e81990c44e
Update io.r2dbc to 0.9.1.RELEASE
Closes gh-10988
2022-03-18 18:11:49 -05:00
Steve Riesenberg f0168c6c27
Add support for customizing claims in JWT Client Assertion
Closes gh-9855
2022-03-17 09:53:16 -05:00
Steve Riesenberg 428216b322 Add support for customizing claims in JWT Client Assertion
Closes gh-9855
2022-03-17 09:50:25 -05:00
Joe Grandja 50a3bcf728 Remove unused code 2022-03-17 05:08:39 -04:00
Jánoky László Viktor a88b8bf980 ClientAuthenticationMethod equals and hashCode is consistent
Closes gh-10559
2022-03-17 05:05:47 -04:00
Joe Grandja 50d315d833 Remove unused code 2022-03-17 04:23:44 -04:00
Joe Grandja 54b033078b Allow configuring PKCE for confidential clients
Closes gh-6548
2022-03-16 13:36:10 -04:00
Joe Grandja a2ffc88294 Allow configuring PKCE for confidential clients
Closes gh-6548
2022-03-16 13:33:12 -04:00
Simone Giannino 92a385ed05
OAuth 2.0 logout handler resolves uri placeholders
- OidcClientInitiatedLogoutSuccessHandler can automatically resolve placeholders like baseUrl and registrationId inside the postLogoutRedirectUri

Closes gh-7900
2022-03-15 14:05:26 -06:00
Simone Giannino 73003d59d6 OAuth 2.0 logout handler resolves uri placeholders
- OidcClientInitiatedLogoutSuccessHandler can automatically resolve placeholders like baseUrl and registrationId inside the postLogoutRedirectUri

Issue gh-7900
2022-03-15 12:54:39 -06:00
Rob Winch 9b380582dc BearerTokenAuthenticationFilter.securityContextRepository
Issue gh-10953
2022-03-09 15:47:34 -06:00
Rob Winch 9db79aa5d7 BearerTokenAuthenticationFilter.securityContextRepository
Issue gh-10953
2022-03-09 15:33:42 -06:00
Josh Cummings 68e2586f06 Move UnmodifiableMapDeserializer
Issue gh-10905
2022-03-01 14:17:17 -07:00
Josh Cummings 931fb6a328 Move UnmodifiableMapDeserializer
Issue gh-10905
2022-03-01 14:03:41 -07:00
Marcus Da Coregio bebd615507 Update io.r2dbc to 0.9.1.RELEASE
Closes gh-10883
2022-02-21 10:35:20 -03:00
Marcus Da Coregio 883c480af0 Update r2dbc-h2 to 0.8.5.RELEASE
Closes gh-10869
2022-02-21 09:20:37 -03:00
Eleftheria Stein d655deb718 Update r2dbc-h2 to 0.8.5.RELEASE
Closes gh-10856
2022-02-21 12:24:24 +01:00
Rob Winch c67ee6f2a8 javax.servlet:javax.servlet-api -> jakarta.servlet:jakarta.servlet-api
Issue gh-10501
2022-01-19 15:32:12 -06:00
Rob Winch 8f64bb6c8c javax.servlet:javax.servlet-api -> jakarta.servlet:jakarta.servlet-api
Issue gh-10501
2022-01-19 14:33:53 -06:00
Marcus Da Coregio d99c08edce Fix failing test in NimbusReactiveJwtDecoderTests 2022-01-17 11:22:05 -03:00
Marcus Da Coregio e2d1bb6998 Update io.r2dbc to 0.9.0.RELEASE
Closes gh-10745
2022-01-17 10:50:47 -03:00
Steve Riesenberg 7c54f98944 Update io.r2dbc to 0.9.0.RELEASE
Closes gh-10717
2022-01-14 11:58:45 -06:00
Joe Grandja 525f40490c Allow Jwt assertion to be resolved
Closes gh-9812
2022-01-10 10:59:14 -05:00
Joe Grandja 214cfe807e Allow Jwt assertion to be resolved
Closes gh-9812
2022-01-10 10:42:10 -05:00
Eleftheria Stein 3389cf3ffc Revert "Lock dependencies"
This reverts commit 83bb4603f8.
2021-12-20 21:55:35 +02:00
Marcus Da Coregio cfbf28b8ba Revert "Lock Dependencies for Release"
This reverts commit 3d4e90ba2a.
2021-12-20 16:47:36 -03:00
Eleftheria Stein 83bb4603f8 Lock dependencies 2021-12-20 21:17:17 +02:00
Marcus Da Coregio 3d4e90ba2a Lock Dependencies for Release 2021-12-20 16:03:13 -03:00
Jonas Erbe 606bf6b38d Fix JwtClaimValidator wrong error code
Previously JwtClaimValidator returned the invalid_request
error on claim validation failure.

But validators have to return invalid_token errors on failure
according to:

https://datatracker.ietf.org/doc/html/rfc6750#section-3.1.

Closes gh-10337
2021-11-29 13:30:38 -07:00
Jonas Erbe 5c732b9b7f Fix JwtClaimValidator wrong error code
Previously JwtClaimValidator returned the invalid_request error on claim validation failure.
But validators have to return invalid_token errors on failure according to:
https://datatracker.ietf.org/doc/html/rfc6750#section-3.1.
Also see gh-10337

Closes gh-10337
2021-11-29 12:34:53 -07:00
Jonas Erbe aefd2d497c Fix JwtClaimValidator wrong error code
Previously JwtClaimValidator returned the invalid_request error on claim validation failure.
But validators have to return invalid_token errors on failure according to:
https://datatracker.ietf.org/doc/html/rfc6750#section-3.1.
Also see gh-10337

Closes gh-10337
2021-11-29 12:22:30 -07:00
Jonas Erbe 8c063f8ccb Fix JwtClaimValidator wrong error code
Previously JwtClaimValidator returned the invalid_request error on claim validation failure.
But validators have to return invalid_token errors on failure according to:
https://datatracker.ietf.org/doc/html/rfc6750#section-3.1.
Also see gh-10337

Closes gh-10337
2021-11-29 12:13:24 -07:00
Jonas Erbe dec858a5b7 Fix JwtClaimValidator wrong error code
Previously JwtClaimValidator returned the invalid_request error on claim validation failure.
But validators have to return invalid_token errors on failure according to:
https://datatracker.ietf.org/doc/html/rfc6750#section-3.1.
Also see gh-10337

Closes gh-10337
2021-11-29 12:04:30 -07:00
Jonas Erbe 82426e20e1 Fix JwtClaimValidator wrong error code
Previously JwtClaimValidator returned the invalid_request error on claim validation failure.
But validators have to return invalid_token errors on failure according to:
https://datatracker.ietf.org/doc/html/rfc6750#section-3.1.
Also see gh-10337

Closes gh-10337
2021-11-29 12:02:02 -07:00
Marcus Da Coregio 25feedb870 Fix removal of framework deprecated code
Issue https://github.com/spring-projects/spring-framework/issues/27686
2021-11-19 13:06:13 -03:00
Dávid Kováč 17e28fa7aa Update clockSkew javadoc according to implementation
Closes gh-10174
2021-11-19 13:48:32 +01:00
Dávid Kováč aa1ef46d84 Update clockSkew javadoc according to implementation
Closes gh-10174
2021-11-19 13:33:05 +01:00
Dávid Kováč 862122a267 Update clockSkew javadoc according to implementation
Closes gh-10174
2021-11-19 08:13:12 +01:00
Khaled Hamlaoui 00fafd878c Allow custom OAuth2ErrorHttpMessageConverter with OAuth2ErrorResponseErrorHandler
Closes gh-10425
2021-11-16 15:27:48 -06:00
Khaled Hamlaoui 498636e26b Allow custom OAuth2ErrorHttpMessageConverter with OAuth2ErrorResponseErrorHandler
Closes gh-10425
2021-11-16 14:52:08 -06:00
Josh Cummings 7b03fb5321 Don't Cache ReactiveJwtDecoders Errors
Closes gh-10444
2021-11-10 18:17:33 -07:00
Josh Cummings f89a34c30b Don't Cache ReactiveJwtDecoders Errors
Closes gh-10444
2021-11-10 18:07:14 -07:00
Josh Cummings 72db6a20c9 Don't Cache ReactiveJwtDecoders Errors
Closes gh-10444
2021-11-10 17:44:15 -07:00
Josh Cummings 538541bf40 Don't Cache ReactiveJwtDecoders Errors
Closes gh-10444
2021-11-10 17:35:53 -07:00
Josh Cummings 2a6e00ceb0 Don't Cache ReactiveJwtDecoders Errors
Closes gh-10444
2021-11-10 17:33:03 -07:00
Steve Riesenberg 076c01daef Add missing @since 5.6 2021-11-09 14:07:05 -06:00
Steve Riesenberg ea352e1c59 Add missing @since 5.6 2021-11-09 14:02:35 -06:00
Marcus Da Coregio db60df2f9c Update to Spring Framework 6.0
Issue gh-10360
2021-11-01 09:02:42 -03:00
Marcus Da Coregio 010f719344 Upgrade to JDK 17
Closes gh-10343
2021-11-01 09:02:42 -03:00
Marcus Da Coregio 560962649e Remove BlockHound dependency
The dependency is not needed anymore and there is a issue when using OpenJDK 13 or higher https://github.com/reactor/BlockHound/issues/33

Issue gh-10343
2021-11-01 09:02:42 -03:00
Rob Winch e4a76b0ec9 Checkstyle Fixes
- Javadoc tag ordering
- Private constructors before inner classes

Issue gh-10394
2021-10-22 10:19:34 -05:00
Rob Winch f836897190 Checkstyle Fixes
- Javadoc tag ordering
- Private constructors before inner classes

Issue gh-10394
2021-10-18 21:03:35 -05:00
Rob Winch 0c088e278a Update r2dbc-spi-test to 0.8.6.RELEASE
Closes gh-10393
2021-10-18 21:03:12 -05:00
Steve Riesenberg 0704c709dc Revert "Lock Dependencies for Release"
This reverts commit 03c2c49d66.
2021-10-18 17:38:07 -05:00
Steve Riesenberg 03c2c49d66 Lock Dependencies for Release 2021-10-18 17:34:42 -05:00
Steve Riesenberg c83bd075a2 Revert "Lock Dependencies for Release"
This reverts commit bedb569f0d.
2021-10-18 16:49:15 -05:00
Steve Riesenberg bedb569f0d Lock Dependencies for Release 2021-10-18 15:38:17 -05:00
Steve Riesenberg b2db2bdb2a Update r2dbc-spi-test to 0.8.6.RELEASE
Closes gh-10410
2021-10-18 14:20:00 -05:00
Joe Grandja 5c8cd23a2d Revert "Lock dependencies"
This reverts commit fc53f81d2e.
2021-10-18 10:48:23 -04:00
Dávid Kováč 64e9ac995a getClaimAsBoolean() should not be falsy
Closes gh-10148
2021-10-14 11:28:09 -05:00
Eleftheria Stein fc53f81d2e Lock dependencies 2021-10-14 15:44:09 +02:00
Philipp Neuschwander 6db58cbf8a Conditionally resolve bearer token from request parameters
Before this commit, the DefaultBearerTokenResolver unconditionally
resolved the request parameters to check whether multiple tokens
are present in the request and reject those requests as invalid.

This commit changes this behaviour to resolve the request parameters
only if parameter token is supported for the specific request
according to spec (RFC 6750).

Closes gh-10326
2021-10-13 17:10:50 -05:00
Dávid Kováč eb0597154d Update JavaDoc according to implementation
Update ClaimAccessor#getClaimAsMap and ClaimAccessor#getClaimAsStringList
JavaDoc according to the current implementation

Closes gh-10117
2021-10-13 13:13:44 -06:00
Dávid Kováč 0299808b05 Add ClaimAccessor tests
Add tests for ClaimAccessor#getClaimAsMap and ClaimAccessor#getClaimAsStringList

Issue gh-10117
2021-10-13 12:53:40 -06:00
Dávid Kováč 125d33e3cf Update JavaDoc according to implementation
Update ClaimAccessor#getClaimAsMap and ClaimAccessor#getClaimAsStringList
JavaDoc according to the current implementation

Closes gh-10117
2021-10-13 12:53:40 -06:00
Joe Grandja e3abaf7999 Add OAuth2ErrorCodes.INVALID_REDIRECT_URI
Closes gh-10370
2021-10-13 14:12:44 -04:00
Steve Riesenberg 3b564b2026 Add parameters converter support to AbstractWebClientReactiveOAuth2AccessTokenResponseClient
This adds support for configuring NimbusJwtClientAuthenticationParametersConverter to any AbstractWebClientReactiveOAuth2AccessTokenResponseClient as an additional parameters converter, which in turns adds reactive support for jwt client authentication.

Closes gh-10146
2021-10-06 13:09:33 -05:00
Steve Riesenberg 9b24f66f1c Implement reactive support for JWT as an Authorization Grant
Closes gh-10147
2021-10-05 16:09:24 -05:00
Marcus Da Coregio 02b2fcc6f0 Restore ManagementConfigurationPlugin
Issue gh-9615
2021-10-05 11:23:29 -03:00
Marcus Da Coregio d2e5f2ae0d Update Gradle to 7.2
Closes gh-9615
2021-10-04 15:19:40 -03:00
Josh Cummings dc95d8d705 Fix OAuth2 Error Code
Closes gh-10319
2021-09-28 15:23:53 -06:00
Josh Cummings 4df9b4547f Fix OAuth2 Error Code
Closes gh-10319
2021-09-28 14:56:25 -06:00
Josh Cummings 1f919bc791 Fix OAuth2 Error Code
Closes gh-10319
2021-09-28 14:55:37 -06:00
Josh Cummings 0f8fa36b93 Fix OAuth2 Error Code
Closes gh-10319
2021-09-28 13:24:51 -06:00
Darren Forsythe 5556b821e3 Check for multiple access tokens per rfc 6750
Check for multiple access tokens on the ServerHttpRequest rather than get get first. If multiples are found throw a OAuth2AuthenticationException.

Closes gh-5708
2021-09-28 08:07:06 -06:00
Joe Grandja 97c949d929 oauth2Login() AuthenticationProvider's preserve root cause exception when rethrown
Closes gh-10228
2021-09-24 10:41:31 -04:00
Joe Grandja 5830fda2fa Introduce JwtEncoder
Closes gh-9208
2021-09-24 05:13:40 -04:00
bishoy basily 860690491a Add setBodyExtractor
Closes gh-10260
2021-09-22 15:32:19 -06:00
Josh Cummings 7b599d4770 Share JWKSource Instances
Closes gh-10312
2021-09-22 13:28:08 -06:00
Josh Cummings 4e7c9bee46 Add Supplier JwtDecoders
Closes gh-9991
2021-09-22 10:58:55 -06:00
Rob Winch 62db842865 Update com.nimbusds to 9.15
Closes gh-10287
2021-09-17 16:40:58 -05:00
Ashley Scopes 171522ebf2 Replace usages of deprecated OAuth2IntrospectionClaimNames
Replace all usages of OAuth2IntrospectionClaimNames with
the suggested OAuth2TokenIntrospectionClaimNames.

There does not appear to be any further usages of OAuth2IntrospectionClaimNames,
so it should be suitable for removal when appropriate in accordance with the
deprecation policy.
2021-09-15 15:05:08 -06:00
Ashley Scopes 7ccc915b2b Ensuring consistency in error handling of opaque providers/managers
The OpaqueTokenAuthenticationProvider now propagates the cause of
introspection exceptions in the same way that the reactive
OpaqueTokenReactiveAuthenticationManager does.

Fixed a final field warning on both OpaqueTokenAuthenticationProvider
and OpaqueTokenReactiveAuthenticationManager.
2021-09-15 15:05:08 -06:00
Ashley Scopes e9d5bbba34 Fixed final field warnings in opaque token introspectors 2021-09-15 15:05:08 -06:00
Ashley Scopes 95c2403968 Fixed potential NullPointerException in opaque token introspection
It appears Nimbus does not check the presence of the Content-Type
header before parsing it in some versions, and since prior to this
commit, the code is .toString()-ing the result, a malformed response
(such as that from a misbehaving cloud gateway) that does not include
a Content-Type would currently throw a NullPointerException.

In addition to this, I have added a little more information to the
log output for this module on the standard and reactive implementations
to aid in debugging authorization/authentication issues much more
easily.
2021-09-15 15:05:08 -06:00
Ashley Scopes dd43d9198b Amended treatment of OAuth2 'iss' claim
Prior to this commit, the OAuth2 resource server code is failing any issuer
that is not a valid URL. This does not correspond to
https://datatracker.ietf.org/doc/html/rfc7662#page-7 which redirects to
https://datatracker.ietf.org/doc/html/rfc7519#section-4.1.1, defining an
issuer as being a "StringOrURI", which is defined at
https://datatracker.ietf.org/doc/html/rfc7519#page-5 as being
an "arbitrary string value" that "MUST be a URI" only for
"any value containing a ':'".

The issue currently is that an issuer that is not a valid URL may be
provided, which will automatically result in the request being aborted
due to being invalid.

I have removed the check entirely, since while the claim could be invalid,
it is still a response that the OAuth2 introspection endpoint has provided.
In the liklihood that interpretations of this behaviour are different for
the OAuth2 server implementation in use, this currently stops Spring
Security from being able to be used at all without implementing a custom
introspector from scratch.

It is also worth noting that the spec does not specify whether it is
valid to normalize issuers or not if they are valid URLs. This may cause
other unintended side effects as a result of this change, so it is
safer to disable it entirely.
2021-09-15 15:05:08 -06:00
Ayush Kohli f1691370d6 Closes gh-10222 2021-09-03 10:58:01 -06:00
/usr/local/ΕΨΗΕΛΩΝ 4302a86fad
Default principalClaimName to SUB
Closes gh-10214
2021-08-20 15:02:22 -06:00
Rujun Chen 9b4ddd7e0a Make AuthorizationGrantTypeConverter support custom grant type
Closes gh-10155
2021-08-19 13:13:20 -04:00
Fabio Guenci 8c1201ae49
Preserve Null Claim Values
Prior to this commit ClaimTypeConverter returned the claims with the
original value for all the claims with a null converted value.
The changes allows ClaimTypeConverter to overwrite and return claims
with converted value of null.

Closes gh-10135
2021-08-16 15:07:23 -06:00
Joe Grandja ec6b2203ca Revert "Lock Dependencies for Release"
This reverts commit 067bdd0dd9.
2021-08-16 11:55:39 -04:00
Joe Grandja 067bdd0dd9 Lock Dependencies for Release 2021-08-16 11:12:40 -04:00
Fabio Guenci 9925c6a4c0
Preserve Null Claim Values
Prior to this commit ClaimTypeConverter returned the claims with the
original value for all the claims with a null converted value.
The changes allows ClaimTypeConverter to overwrite and return claims
with converted value of null.

Closes gh-10135
2021-08-16 08:44:27 -06:00
Fabio Guenci f33598946f
Preserve Null Claim Values
Prior to this commit ClaimTypeConverter returned the claims with the
original value for all the claims with a null converted value.
The changes allows ClaimTypeConverter to overwrite and return claims
with converted value of null.

Closes gh-10135
2021-08-16 08:40:39 -06:00
Fabio Guenci b067aa4653
Preserve Null Claim Values
Prior to this commit ClaimTypeConverter returned the claims with the
original value for all the claims with a null converted value.
The changes allows ClaimTypeConverter to overwrite and return claims
with converted value of null.

Closes gh-10135
2021-08-16 08:22:31 -06:00
Marcus Da Coregio c706a103f9 Revert "Lock Dependencies"
This reverts commit 1533f098d2.
2021-08-16 10:35:39 -03:00
Marcus Da Coregio 1533f098d2 Lock Dependencies 2021-08-16 09:42:34 -03:00
Josh Cummings cdc902d04d
Update SpringOpaqueTokenIntrospector
Issue gh-9647
2021-08-12 16:52:02 -06:00
Dávid Kováč 3ff825576b Move and rename OAuth2IntrospectionClaimAccessor/Names
Introduced OAuth2TokenIntrospectionClaimAccessor and OAuth2TokenIntrospectionClaimNames
with copied implementation from OAuth2IntrospectionClaimAccessor/Names.
OAuth2IntrospectionClaimAccessor and OAuth2IntrospectionClaimNames are
now deprecated.

Also method getScopes() returning list of scopes was introduced
and getScope() is now deprecated.

Closes gh-9647
2021-08-12 16:51:33 -06:00
Josh Cummings b83a4c2985
Polish Preserve Null Claim Values
Preserves the original behavior of ClaimTypeConverter so that its
converters can maintain their default behavior of null meaning that
conversion failed.

Issue gh-10135
2021-08-12 10:22:44 -06:00
Fabio Guenci 30a1c1af7c
Preserve Null Claim Values
Prior to this commit ClaimTypeConverter returned the claims with the
original value for all the claims with a null converted value.
The changes allows ClaimTypeConverter to overwrite and return claims
with converted value of null.

Closes gh-10135
2021-08-12 10:09:34 -06:00
Steve Riesenberg 6d6dc113d8 Add converter for authentication result in OAuth2LoginAuthenticationFilter
Closes gh-10033
2021-08-10 16:50:19 -05:00
Steve Riesenberg fc553bf19a Add gh-10130 to tests 2021-08-09 15:33:54 -05:00
Steve Riesenberg acca3dba69 Polish gh-10131 2021-08-09 11:07:12 -05:00
Vincent Boulaye 044157061f Enable customizing headers in token requests
Adds the possibility to customize the headers of the access token request in AbstractWebClientReactiveOAuth2AccessTokenResponseClient, similarly to what is done in the AbstractOAuth2AuthorizationGrantRequestEntityConverter.

Closes gh-10130
2021-08-09 10:50:37 -05:00
Josh Cummings 6370906ead
Add SpringOpaqueTokenIntrospector
Closes gh-9354
2021-07-26 10:50:50 -06:00
Steve Riesenberg e1b6a7ba29 Revert "URL encode client credentials"
This reverts commit c0200512a7.

Issue gh-9610 gh-9863
Closes gh-10018
2021-07-20 14:06:46 -05:00
Steve Riesenberg f55247e28a Revert "URL encode client credentials"
This reverts commit 6cafa48369.

Issue gh-9610 gh-9862
Closes gh-10018
2021-07-20 14:05:55 -05:00
Steve Riesenberg dc81e1c86b Revert "URL encode client credentials"
This reverts commit 5243b1b8a8.

Issue gh-9610 gh-9861
Closes gh-10018
2021-07-20 13:29:29 -05:00
Steve Riesenberg dfebd6d9d4 Revert "URL encode client credentials"
This reverts commit e6c268add0.

Issue gh-9610 gh-9858
Closes gh-10018
Closes gh-10121
2021-07-20 12:59:44 -05:00
Steve Riesenberg f5266c7511 Remove wildcard from generics in converter
Polish gh-9779
2021-07-12 23:42:47 -05:00
Rob Winch f73f213f50 Remove DependencySetPlugin
Closes gh-10070
2021-07-12 15:31:38 -05:00
Rob Winch 98bd772b67 format 2021-07-09 14:49:47 -05:00
Rob Winch b6ff4d3674 Fix mockito UnnecessaryStubbingException 2021-07-09 14:35:10 -05:00
Rob Winch 3e93b024d6 openrewrite Junit Migration 2021-07-09 14:32:52 -05:00
Rob Winch 14240b2559 Remove Powermock
Powermock does not support JUnit5 yet, so we need to remove it
to support JUnit 5. Additionally, maintaining additional libraries
adds extra work for the team.

Mockito now supports final classes and static method mocking. This
commit replaces Powermock with mockito-inline.

Closes gh-6025
2021-07-08 12:35:32 -05:00
Marcus Da Coregio b0d22d1a03 Revert "Lock Dependencies"
This reverts commit eb300c78bd.
2021-06-22 10:20:07 -03:00
Steve Riesenberg c17767883f Revert "Lock Dependencies for Release"
This reverts commit d71be4ca28.
2021-06-21 12:57:05 -05:00
Josh Cummings d71be4ca28
Lock Dependencies for Release 2021-06-21 10:33:10 -06:00
Marcus Da Coregio eb300c78bd Lock Dependencies 2021-06-21 09:23:19 -03:00
Arnaud Mergey 1cd4ffeeb7
fix typo preventing full exception to be displayed in log
closes gh-9901
2021-06-17 08:40:55 -06:00
Arnaud Mergey 5fd81eeaf1
fix typo preventing full exception to be displayed in log
closes gh-9901
2021-06-17 08:38:24 -06:00
Josh Cummings d4c3cea0e6
Update Copyright
Issue gh-9901
2021-06-17 08:34:31 -06:00
Arnaud Mergey 1d606ccedb fix typo preventing full exception to be displayed in log
closes gh-9901
2021-06-17 08:33:32 -06:00
Steve Riesenberg a332e2a728
Support additional client authentication methods
Closes gh-9780
2021-06-16 16:03:13 -05:00
Steve Riesenberg 9daf058a6e
Handle missing authorization endpoint uri
Closes gh-9795
2021-06-16 16:00:53 -05:00
Steve Riesenberg 839cc5e851
Remove validation for unsupported grant types
Closes gh-9828
2021-06-16 15:55:45 -05:00
Steve Riesenberg 807ce30948 Support additional client authentication methods
Closes gh-9780
2021-06-16 15:48:03 -05:00
Steve Riesenberg 0cba0874f3 Handle missing authorization endpoint uri
Closes gh-9795
2021-06-16 15:38:53 -05:00
Steve Riesenberg 9b05afdee8 Remove validation for unsupported grant types
Closes gh-9828
2021-06-16 14:54:33 -05:00
Joe Grandja 6fbd038111 Jwt client authentication converter detects new key
Closes gh-9814
2021-06-16 12:58:01 -04:00
Joe Grandja eb6ed283e0 Jwt client authentication converter detects new key
Closes gh-9814
2021-06-16 12:55:12 -04:00
Steve Riesenberg 67a18f564a Store one request by default in WebSessionOAuth2ServerAuthorizationRequestRepository
Related to gh-9649
Closes gh-9857
2021-06-15 12:14:37 -05:00
Steve Riesenberg b6ae11295f Commit missing compile fix from cherry-pick conflict 2021-06-15 12:10:06 -05:00
Steve Riesenberg ee9c8e2fd0 Store one request by default in WebSessionOAuth2ServerAuthorizationRequestRepository
Related to gh-9649
Closes gh-9857
2021-06-15 12:06:22 -05:00
Steve Riesenberg a108868529 Store one request by default in WebSessionOAuth2ServerAuthorizationRequestRepository
Related to gh-9649
Closes gh-9857
Closes gh-9912
2021-06-15 11:44:34 -05:00
Steve Riesenberg 700bda68b7 Store one request by default in WebSessionOAuth2ServerAuthorizationRequestRepository
Related to gh-9649
Closes gh-9857
2021-06-15 11:32:35 -05:00
Steve Riesenberg aed993f3e5
Store one request by default in WebSessionOAuth2ServerAuthorizationRequestRepository
Related to gh-9649
Closes gh-9857
2021-06-15 11:03:30 -05:00
Steve Riesenberg c0200512a7 URL encode client credentials
Closes gh-9610
2021-06-08 08:27:20 -05:00
Eleftheria Stein 36805c7192 Revert "Use strict equality for timestamp comparison in JDBC tests"
This reverts commit 09a0670cb6.

This appears to still be an issue in Windows

Issue gh-8782
2021-06-08 10:13:53 +03:00
Eleftheria Stein 09a0670cb6 Use strict equality for timestamp comparison in JDBC tests
This is possible because of the update to HSQLDB 2.6.0
This reverts commit eb7b27695d.

Closes gh-8782
2021-06-08 09:31:55 +03:00
Eleftheria Stein 204a32aba8 Replace < and > with &lt and &gt in Javadoc
Closes gh-9847
2021-06-04 12:26:07 +03:00
Steve Riesenberg 6cafa48369 URL encode client credentials
Closes gh-9610
2021-06-03 09:39:00 -05:00
Steve Riesenberg 5243b1b8a8 URL encode client credentials
Closes gh-9610
2021-06-03 09:29:25 -05:00
Steve Riesenberg e6c268add0 URL encode client credentials
Closes gh-9610
2021-06-03 09:12:18 -05:00
Steve Riesenberg 10de63ce89 Access Token Response supports any data type
Changed the converter used to convert a map into an OAuth2AccessTokenResponse to
support any object as the value, including json numbers and nested objects. Also
deprecated old classes/setters and added new classes/setters.

Closes gh-9685
2021-06-01 14:38:14 -05:00
Steve Riesenberg ac9b137cad URL encode client credentials
Closes gh-9610
2021-06-01 12:57:06 -05:00