Commit Graph

261 Commits

Author SHA1 Message Date
Joe Grandja fe979aa996 OidcUserService leverages DefaultOAuth2UserService
Fixes gh-5390
2018-05-31 16:17:47 -04:00
Joe Grandja 82e4abdd32 OAuth2ClientArgumentResolver uses AnnotatedElementUtils
Fixes gh-5335
2018-05-29 21:29:33 -04:00
Joe Grandja 32c33d1def Add OAuth2AuthenticationException constructor that takes only OAuth2Error
Fixes gh-5374
2018-05-29 21:10:34 -04:00
Rob Winch b3ca598679 Add WebClient Bearer token support
Fixes: gh-5389
2018-05-25 15:17:08 -05:00
Rob Winch c68cf991ae Add OAuth2AuthorizedClientExchangeFilterFunction
Fixes: gh-5386
2018-05-25 11:01:55 -05:00
Rob Winch 2658577396 OAuth2AuthorizationRequestRedirectWebFilter handles ClientAuthorizationRequiredException
Fixes: gh-5383
2018-05-24 16:40:41 -05:00
Rob Winch 0eedfc717a Revert "Revert "Add ClientRegistration from OpenID Connect Discovery""
This reverts commit 9fe0f50e3c.

The original commit was accidentally pushed prior to PR. We attempted
to revert the commit hoping the PR would open again. This did not work.
We are going to do a Polish commit instead.

Issue: gh-5355
2018-05-18 09:40:43 -05:00
Rob Winch 9fe0f50e3c Revert "Add ClientRegistration from OpenID Connect Discovery"
This reverts commit 0598d47732.
2018-05-18 09:20:51 -05:00
Rob Winch 0598d47732 Add ClientRegistration from OpenID Connect Discovery
Fixes: gh-4413
2018-05-16 12:30:04 -05:00
Rob Winch 7013c6fd76 Add OAuth2LoginSpec
Issue: gh-4807
2018-05-11 04:19:50 -05:00
Rob Winch 23f4b9d3d1 Add OAuth2AuthorizationRequestRedirectWebFilter
Issue: gh-4807
2018-05-11 04:19:50 -05:00
Rob Winch de959dbff6 Add OAuth2ClientArgumentResolver
Issue: gh-4807
2018-05-11 04:19:50 -05:00
Rob Winch c1e9785a48 Add OAuth2LoginReactiveAuthenticationManager
Issue: gh-4807
2018-05-11 04:19:50 -05:00
Rob Winch 7401cb2b51 Add ServerOAuth2LoginAuthenticationTokenConverter
Issue: gh-4807
2018-05-11 04:19:50 -05:00
Rob Winch 3cd2ddf793 Add NimbusReactiveAuthorizationCodeTokenResponseClient
Issue: gh-4807
2018-05-11 04:19:50 -05:00
Rob Winch 3220e9560a Add DefaultReactiveOAuth2UserService
Issue: gh-4807
2018-05-11 04:19:50 -05:00
Rob Winch b613b2d253 Add WebSessionOAuth2ReactiveAuthorizationRequestRepository
Issue: gh-4807
2018-05-11 04:19:50 -05:00
Rob Winch 5e9c714ff0 Add InMemoryReactiveOAuth2AuthorizedClientService
Issue: gh-4807
2018-05-11 04:19:50 -05:00
Rob Winch a02b0c17f8 Add InMemoryReactiveClientRegistrationRepository
Issue: gh-4807
2018-05-11 04:19:50 -05:00
Rob Winch c696640276 OAuth2AuthorizationResponseUtils uses MultiMap
Fixes: gh-5331
2018-05-11 04:19:50 -05:00
Joe Grandja fff64db0e2 Improve ClaimAccessor getClaimAsInstant
Fixes gh-5250
2018-05-03 21:03:45 -04:00
Joe Grandja 2356749cc3 Add test NimbusUserInfoResponseClient sets Accept header to JSON
Issue gh-5294
2018-05-03 20:18:41 -04:00
Joe Grandja b8f225c49e NimbusUserInfoResponseClient sets Accept header to JSON
Fixes gh-5294
2018-05-03 16:34:38 -04:00
Joe Grandja 4cc5705ae5 HttpSessionOAuth2AuthorizationRequestRepository removes empty Map from session
Fixes gh-5263
2018-05-02 11:07:26 -04:00
Joe Grandja 49b63e260d OAuth2LoginAuthenticationFilter should handle null ClientRegistration
Fixes gh-5251
2018-05-02 09:16:42 -04:00
Joe Grandja 6095340e93 OAuth2AuthorizationRequestRedirectFilter -> Reuse code for baseUrl
Fixes gh-5153
2018-04-09 21:11:00 -04:00
Joe Grandja d8f91e4261 Fix NPE with exp claim in NimbusJwtDecoderJwkSupport
Fixes gh-5168
2018-04-04 07:58:32 -04:00
Joe Grandja 2bd31c96ed ClaimAccessor.getClaimAsInstant() converts Long or Date
Fixes gh-5191, Fixes gh-5192
2018-04-03 21:14:25 -04:00
Joe Grandja 526e0fdd4f Add OAuth2 Client HandlerMethodArgumentResolver
Fixes gh-4651
2018-04-02 12:13:52 -04:00
Joe Grandja 982fc360b2 Add support for authorization_code grant
Fixes gh-4928
2018-04-02 12:13:06 -04:00
Joe Grandja ce2f669245 Remove state assertion when loading OAuth2AuthorizationRequest
Fixes gh-5163
2018-03-27 20:06:30 -04:00
Christoph Dreis d07cfe655d Use Supplier variants of Assert methods 2018-03-27 10:58:55 -05:00
Joe Grandja bb15213091 Ensure consistency by using Collection<GrantedAuthority> type
Fixes gh-5143
2018-03-21 10:35:18 -04:00
Joe Grandja 90f9d728cd Allow extension for OAuth2Error
Fixes gh-5148
2018-03-21 10:04:57 -04:00
Rob Winch bf41d48718 HttpSessionOAuth2AuthorizationRequestRepository support distributed HttpSession
Previously HttpSessionOAuth2AuthorizationRequestRepository
getAuthorizationRequest attempted to update the state of HttpSession as
well as getting the Map of OAuth2AuthorizationRequest. This had a few
problems

- First it was confusing that a get method updated state
- It worked when the session was in memory, but would not work when the
  HttpSesson was persisted to an external store (i.e. Spring Session) since
  after updating the Map, there was no invocation to update

This commit cleans up the logic and ensures that the values are explicitly
set in the HttpSession so it works with a session persisted in an external
store.

Fixes: gh-5146
2018-03-20 22:14:48 -05:00
Rob Winch 04e2e86e6e Polish HttpSessionOAuth2AuthorizationRequestRepositoryTests
Fixes: gh-5147
2018-03-20 22:14:48 -05:00
Joe Grandja 59cef7d339 HttpSessionOAuth2AuthorizationRequestRepository handle multiple OAuth2AuthorizationRequest per session
Fixes gh-5110
2018-03-20 22:14:48 -05:00
Joe Grandja a5bd76b6ed Revert authorization_code grant support
This reverts commit eae7afd9aa.
2018-03-06 16:16:45 -05:00
Joe Grandja eae7afd9aa Add support for authorization_code grant
Fixes gh-4928
2018-03-02 14:30:49 -05:00
Joe Grandja 7eb58ee7d9 DefaultOAuth2UserService -> assert UserInfo Uri is set
Fixes gh-4992
2018-02-02 13:01:18 -05:00
Joe Grandja 6b24aaf6f5 Add javadoc for spring-security-oauth2-jose
Fixes gh-4885
2018-01-23 21:27:47 -05:00
Joe Grandja fe2ac00deb Add javadoc for spring-security-oauth2-client
Fixes gh-4884
2018-01-23 17:07:21 -05:00
Joe Grandja e6cac604f3 Add javadoc for spring-security-oauth2-core
Fixes gh-4883
2018-01-18 16:00:26 -05:00
Joe Grandja 1d32fffc1d Make OAuth2Error Serializable
Fixes gh-4944
2018-01-10 10:40:54 -05:00
Johnny Lim 57353d18e5 Use diamond type 2017-12-21 15:09:00 -06:00
Eddú Meléndez c16456623f Remove unused imports 2017-12-20 16:05:38 -06:00
Joe Grandja 268a1dc06e DefaultOAuth2User is Serializable
Fixes gh-4917
2017-12-19 09:07:17 -05:00
Rob Winch ae664c33b1 Polish
Fix compile warnings in ClientRegistrationTests
2017-11-27 12:12:59 -06:00
Johnny Lim edccafca84 Create OAuth2AuthorizationResponse lazily
This commit creates `OAuth2AuthorizationResponse` as lazily as possible to prevent the creation when `authorizationRequest` is `null`.

Fixes gh-4848
2017-11-20 11:01:34 -05:00
Joe Grandja c04b3b4114 Exclude well-known ports in expanded redirect-uri
Fixes gh-4836
2017-11-18 10:41:27 -05:00
Johnny Lim b6895e6359 Apply Checkstyle WhitespaceAfterCheck module 2017-11-16 11:18:31 -06:00
Joe Grandja dd33f0a7de ClientRegistration.redirectUri -> redirectUriTemplate
Fixes gh-4827
2017-11-15 14:51:35 -05:00
Joe Grandja e098c3707e Update default redirect-uri to use 'baseUrl' template variable
Fixes gh-4826
2017-11-15 14:51:35 -05:00
Johnny Lim d900f2a623 Remove unused imports
This commit also adds UnusedImportsCheck Checkstyle module.
2017-11-14 14:41:08 -06:00
Joe Grandja 872a8f3189 Change constructor param order in oauth2 client filters
Fixes gh-4818
2017-11-13 17:32:22 -05:00
Joe Grandja 426c034c01 OidcUserService uses custom userNameAttributeName
Fixes gh-4812
2017-11-12 14:44:57 -05:00
Joe Grandja 6775d9fdd8 OAuth2AccessTokenResponse should account for expires_in <= 0
Fixes gh-4810
2017-11-12 11:30:11 -05:00
Joe Grandja 63e2db72ea Add tests to oauth2-jose
Fixes gh-4806
2017-11-10 17:09:48 -05:00
Joe Grandja 473ac0e37c Add tests to oauth2-client
Fixes gh-4299
2017-11-10 16:03:34 -05:00
Joe Grandja db35dc6c03 Add tests to oauth2-core
Fixes gh-4298
2017-11-06 11:39:17 -05:00
Joe Grandja ef9cd76607 Polish oauth2
Fixes gh-4758
2017-10-30 16:49:01 -04:00
Joe Grandja d435f149eb Polish spring-security-oauth2-jose
Fixes gh-4755
2017-10-30 13:09:40 -04:00
Joe Grandja 511d702ee0 Remove JwtDecoderRegistry
Fixes gh-4754
2017-10-30 12:52:42 -04:00
Rob Winch d9584384c4 Move collectClaims to OidcUserAuthority
Fixes gh-4749
2017-10-29 20:41:05 -05:00
Rob Winch 3d065b5afd Add getIdToken getUser to OidcUser
Fixes gh-4748
2017-10-29 20:10:55 -05:00
Rob Winch c1c726f123 Polish InMemoryClientRegistrationRepository
Issue: gh-4745
2017-10-29 20:03:36 -05:00
Rob Winch a3e38fec47 Remove AuthorizationRequestUriBuilder
Make this API private since we don't have concrete use cases for exposing
it yet.

Fixes gh-4742
2017-10-29 19:50:02 -05:00
Joe Grandja c3d2effc1d Polish OAuth2AuthorizedClientService
Fixes gh-4746
2017-10-29 20:25:03 -04:00
Joe Grandja b496ad4d86 Polish OAuth2LoginAuthenticationToken
Fixes gh-4744
2017-10-29 19:21:41 -04:00
Rob Winch 8032baa296 Polish InMemoryClientRegistrationRepository
- use Map.get
- Construct with stream()
- Add tests
- Remove unnecessary unmodifiableCollection (already unmodifiable)

Fixes gh-4745
2017-10-29 18:07:49 -05:00
Rob Winch f0c2944377 OAuth2AuthorizationResponse getAccessToken
No longer delegate to OAuth2AccessToken but add getAccessToken()

Fixes gh-4743
2017-10-29 17:12:46 -05:00
Joe Grandja e4887057bc Rename AuthorizationGrantTokenExchanger -> OAuth2AccessTokenResponseClient
Fixes gh-4741
2017-10-29 17:49:15 -04:00
Joe Grandja 2a00232a5b Remove UserInfoRetreiver
Fixes gh-4740
2017-10-29 17:49:15 -04:00
Joe Grandja 6fbd435bdf OAuth2LoginAuthenticationFilter requires collaborators
Fixes gh-4661
2017-10-29 04:41:23 -04:00
Joe Grandja b471dd1c54 Remove OAuth2TokenRepository
Fixes gh-4727
2017-10-28 21:40:33 -04:00
Joe Grandja b1d56b5821 NimbusAuthorizationCodeTokenExchanger uses authorizationRequest.redirectUri
Fixes gh-4701
2017-10-28 21:30:40 -04:00
Joe Grandja 006319f19a UserInfoRetriever supports ParameterizedTypeReference
Fixes gh-4693
2017-10-28 19:26:04 -04:00
Joe Grandja 9dc4aa6c81 Make OidcUserInfo Serializable
Fixes gh-4733
2017-10-28 18:35:21 -04:00
Joe Grandja 83dc902ff7 Map CustomUserTypesOAuth2UserService using clientRegistrationId
Fixes gh-4692
2017-10-28 18:11:39 -04:00
Joe Grandja 0c68eb1821 Re-factor OAuth2AuthorizationCodeAuthenticationToken
Fixes gh-4730
2017-10-28 17:15:31 -04:00
Joe Grandja 64d8c8b8a9 Re-factor AuthorizationGrantTokenExchanger
Fixes gh-4728
2017-10-28 17:12:14 -04:00
Joe Grandja 16e69d06b4 Add OAuth2AuthorizedClientService
Fixes gh-4726
2017-10-28 17:12:14 -04:00
Sola f0b0cfc4fd Ensure Copyright header reads 2002-2017
fixes gh-4655

Signed-off-by: Sola <dev@sola.love>
2017-10-28 13:02:06 -05:00
Joe Grandja 67bac28481 OAuth2UserService uses OAuth2UserRequest
Fixes gh-4724
2017-10-27 22:34:25 -04:00
Joe Grandja 3d319f7592 Make AuthorizationRequestRepository a Generic
Fixes gh-4723
2017-10-27 21:31:45 -04:00
Joe Grandja 9afefef3b9 Polish class names in oauth2-client
Fixes gh-4722
2017-10-27 21:00:52 -04:00
Joe Grandja 34668e05af Polish class names in oauth2-core
Fixes gh-4720
2017-10-27 20:42:58 -04:00
Joe Grandja 8527daa22a Make OAuth2UserService Generic using OAuth2AuthorizedClient and OAuth2User types
Fixes gh-4706
2017-10-27 11:49:29 -04:00
Joe Grandja 3b80b6ded8 Move AuthorizationRequestUriBuilder to oauth2-client
Fixes gh-4703
2017-10-26 21:23:06 -04:00
Joe Grandja ef197d8215 Move JwtDecoderRegistry to oauth2.client.jwt package
Fixes gh-4705
2017-10-26 21:06:28 -04:00
Joe Grandja 70543dcb30 Move oidc package in oauth2-core and oauth2-client
Fixes gh-4710
2017-10-26 21:06:28 -04:00
Joe Grandja c5da9e08fd Move AuthorizedClient to root package oauth2.client
Fixes gh-4709
2017-10-26 15:51:26 -04:00
Joe Grandja ef83bc8dd7 Move package client.authentication.userinfo -> client.userinfo
Fixes gh-4708
2017-10-26 15:39:04 -04:00
Joe Grandja 35fb96a2f8 Move OAuth2AuthenticationException to oauth2-core
Fixes gh-4707
2017-10-26 15:12:03 -04:00
Joe Grandja 027ea78dab Revert "Move OAuth2LoginAuthenticationProvider into userinfo package"
This reverts commit 54547f35b7.
2017-10-26 14:55:25 -04:00
Joe Grandja 942b647c0d OAuth2LoginAuthenticationFilter processes uri /login/oauth2/code/*
Issue gh-4687
2017-10-26 14:20:19 -04:00
Rob Winch 54547f35b7 Move OAuth2LoginAuthenticationProvider into userinfo package
Fix package tangles. OAuth2LoginAuthenticationProvider requires
OAuth2UserService which is in a child package. We should move
OAuth2LoginAuthenticationProvider to the same package.

Issue: gh-4614
2017-10-26 11:22:21 -05:00
Joe Grandja 18dd49b47c Validate ID Token
Fixes gh-4440
2017-10-26 11:36:44 -04:00
Joe Grandja d0a4e49870 Map custom OAuth2User types using String
Fixes gh-4691
2017-10-25 17:13:44 -04:00
Joe Grandja 1a3b9c1f3f Polish UserInfoRetriever
Issue gh-4695
2017-10-25 16:48:50 -04:00