|
@@ -25,6 +25,7 @@ import org.springframework.security.oauth2.client.OAuth2AuthorizeRequest;
|
|
|
import org.springframework.security.oauth2.client.OAuth2AuthorizedClient;
|
|
|
import org.springframework.security.oauth2.client.OAuth2AuthorizedClientManager;
|
|
|
import org.springframework.security.oauth2.client.OAuth2AuthorizedClientProvider;
|
|
|
+import org.springframework.security.oauth2.client.OAuth2AuthorizedClientProviderBuilder;
|
|
|
import org.springframework.security.oauth2.client.RemoveAuthorizedClientOAuth2AuthorizationFailureHandler;
|
|
|
import org.springframework.security.oauth2.client.registration.ClientRegistration;
|
|
|
import org.springframework.security.oauth2.client.registration.ClientRegistrationRepository;
|
|
@@ -83,9 +84,16 @@ import java.util.function.Function;
|
|
|
* @see OAuth2AuthorizationFailureHandler
|
|
|
*/
|
|
|
public final class DefaultOAuth2AuthorizedClientManager implements OAuth2AuthorizedClientManager {
|
|
|
+ private static final OAuth2AuthorizedClientProvider DEFAULT_AUTHORIZED_CLIENT_PROVIDER =
|
|
|
+ OAuth2AuthorizedClientProviderBuilder.builder()
|
|
|
+ .authorizationCode()
|
|
|
+ .refreshToken()
|
|
|
+ .clientCredentials()
|
|
|
+ .password()
|
|
|
+ .build();
|
|
|
private final ClientRegistrationRepository clientRegistrationRepository;
|
|
|
private final OAuth2AuthorizedClientRepository authorizedClientRepository;
|
|
|
- private OAuth2AuthorizedClientProvider authorizedClientProvider = context -> null;
|
|
|
+ private OAuth2AuthorizedClientProvider authorizedClientProvider;
|
|
|
private Function<OAuth2AuthorizeRequest, Map<String, Object>> contextAttributesMapper;
|
|
|
private OAuth2AuthorizationSuccessHandler authorizationSuccessHandler;
|
|
|
private OAuth2AuthorizationFailureHandler authorizationFailureHandler;
|
|
@@ -102,6 +110,7 @@ public final class DefaultOAuth2AuthorizedClientManager implements OAuth2Authori
|
|
|
Assert.notNull(authorizedClientRepository, "authorizedClientRepository cannot be null");
|
|
|
this.clientRegistrationRepository = clientRegistrationRepository;
|
|
|
this.authorizedClientRepository = authorizedClientRepository;
|
|
|
+ this.authorizedClientProvider = DEFAULT_AUTHORIZED_CLIENT_PROVIDER;
|
|
|
this.contextAttributesMapper = new DefaultContextAttributesMapper();
|
|
|
this.authorizationSuccessHandler = (authorizedClient, principal, attributes) ->
|
|
|
authorizedClientRepository.saveAuthorizedClient(authorizedClient, principal,
|