Assign sensible default for OAuth2AuthorizedClientProvider
Fixes gh-8150
This commit is contained in:
parent
120af761a0
commit
2d8242c5c1
|
@ -72,9 +72,13 @@ import java.util.function.Function;
|
||||||
* @see OAuth2AuthorizationFailureHandler
|
* @see OAuth2AuthorizationFailureHandler
|
||||||
*/
|
*/
|
||||||
public final class AuthorizedClientServiceOAuth2AuthorizedClientManager implements OAuth2AuthorizedClientManager {
|
public final class AuthorizedClientServiceOAuth2AuthorizedClientManager implements OAuth2AuthorizedClientManager {
|
||||||
|
private static final OAuth2AuthorizedClientProvider DEFAULT_AUTHORIZED_CLIENT_PROVIDER =
|
||||||
|
OAuth2AuthorizedClientProviderBuilder.builder()
|
||||||
|
.clientCredentials()
|
||||||
|
.build();
|
||||||
private final ClientRegistrationRepository clientRegistrationRepository;
|
private final ClientRegistrationRepository clientRegistrationRepository;
|
||||||
private final OAuth2AuthorizedClientService authorizedClientService;
|
private final OAuth2AuthorizedClientService authorizedClientService;
|
||||||
private OAuth2AuthorizedClientProvider authorizedClientProvider = context -> null;
|
private OAuth2AuthorizedClientProvider authorizedClientProvider;
|
||||||
private Function<OAuth2AuthorizeRequest, Map<String, Object>> contextAttributesMapper;
|
private Function<OAuth2AuthorizeRequest, Map<String, Object>> contextAttributesMapper;
|
||||||
private OAuth2AuthorizationSuccessHandler authorizationSuccessHandler;
|
private OAuth2AuthorizationSuccessHandler authorizationSuccessHandler;
|
||||||
private OAuth2AuthorizationFailureHandler authorizationFailureHandler;
|
private OAuth2AuthorizationFailureHandler authorizationFailureHandler;
|
||||||
|
@ -91,6 +95,7 @@ public final class AuthorizedClientServiceOAuth2AuthorizedClientManager implemen
|
||||||
Assert.notNull(authorizedClientService, "authorizedClientService cannot be null");
|
Assert.notNull(authorizedClientService, "authorizedClientService cannot be null");
|
||||||
this.clientRegistrationRepository = clientRegistrationRepository;
|
this.clientRegistrationRepository = clientRegistrationRepository;
|
||||||
this.authorizedClientService = authorizedClientService;
|
this.authorizedClientService = authorizedClientService;
|
||||||
|
this.authorizedClientProvider = DEFAULT_AUTHORIZED_CLIENT_PROVIDER;
|
||||||
this.contextAttributesMapper = new DefaultContextAttributesMapper();
|
this.contextAttributesMapper = new DefaultContextAttributesMapper();
|
||||||
this.authorizationSuccessHandler = (authorizedClient, principal, attributes) ->
|
this.authorizationSuccessHandler = (authorizedClient, principal, attributes) ->
|
||||||
authorizedClientService.saveAuthorizedClient(authorizedClient, principal);
|
authorizedClientService.saveAuthorizedClient(authorizedClient, principal);
|
||||||
|
|
|
@ -69,9 +69,13 @@ import java.util.function.Function;
|
||||||
public final class AuthorizedClientServiceReactiveOAuth2AuthorizedClientManager
|
public final class AuthorizedClientServiceReactiveOAuth2AuthorizedClientManager
|
||||||
implements ReactiveOAuth2AuthorizedClientManager {
|
implements ReactiveOAuth2AuthorizedClientManager {
|
||||||
|
|
||||||
|
private static final ReactiveOAuth2AuthorizedClientProvider DEFAULT_AUTHORIZED_CLIENT_PROVIDER =
|
||||||
|
ReactiveOAuth2AuthorizedClientProviderBuilder.builder()
|
||||||
|
.clientCredentials()
|
||||||
|
.build();
|
||||||
private final ReactiveClientRegistrationRepository clientRegistrationRepository;
|
private final ReactiveClientRegistrationRepository clientRegistrationRepository;
|
||||||
private final ReactiveOAuth2AuthorizedClientService authorizedClientService;
|
private final ReactiveOAuth2AuthorizedClientService authorizedClientService;
|
||||||
private ReactiveOAuth2AuthorizedClientProvider authorizedClientProvider = context -> Mono.empty();
|
private ReactiveOAuth2AuthorizedClientProvider authorizedClientProvider = DEFAULT_AUTHORIZED_CLIENT_PROVIDER;
|
||||||
private Function<OAuth2AuthorizeRequest, Mono<Map<String, Object>>> contextAttributesMapper = new DefaultContextAttributesMapper();
|
private Function<OAuth2AuthorizeRequest, Mono<Map<String, Object>>> contextAttributesMapper = new DefaultContextAttributesMapper();
|
||||||
private ReactiveOAuth2AuthorizationSuccessHandler authorizationSuccessHandler;
|
private ReactiveOAuth2AuthorizationSuccessHandler authorizationSuccessHandler;
|
||||||
private ReactiveOAuth2AuthorizationFailureHandler authorizationFailureHandler;
|
private ReactiveOAuth2AuthorizationFailureHandler authorizationFailureHandler;
|
||||||
|
|
|
@ -25,6 +25,7 @@ import org.springframework.security.oauth2.client.OAuth2AuthorizeRequest;
|
||||||
import org.springframework.security.oauth2.client.OAuth2AuthorizedClient;
|
import org.springframework.security.oauth2.client.OAuth2AuthorizedClient;
|
||||||
import org.springframework.security.oauth2.client.OAuth2AuthorizedClientManager;
|
import org.springframework.security.oauth2.client.OAuth2AuthorizedClientManager;
|
||||||
import org.springframework.security.oauth2.client.OAuth2AuthorizedClientProvider;
|
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.RemoveAuthorizedClientOAuth2AuthorizationFailureHandler;
|
||||||
import org.springframework.security.oauth2.client.registration.ClientRegistration;
|
import org.springframework.security.oauth2.client.registration.ClientRegistration;
|
||||||
import org.springframework.security.oauth2.client.registration.ClientRegistrationRepository;
|
import org.springframework.security.oauth2.client.registration.ClientRegistrationRepository;
|
||||||
|
@ -83,9 +84,16 @@ import java.util.function.Function;
|
||||||
* @see OAuth2AuthorizationFailureHandler
|
* @see OAuth2AuthorizationFailureHandler
|
||||||
*/
|
*/
|
||||||
public final class DefaultOAuth2AuthorizedClientManager implements OAuth2AuthorizedClientManager {
|
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 ClientRegistrationRepository clientRegistrationRepository;
|
||||||
private final OAuth2AuthorizedClientRepository authorizedClientRepository;
|
private final OAuth2AuthorizedClientRepository authorizedClientRepository;
|
||||||
private OAuth2AuthorizedClientProvider authorizedClientProvider = context -> null;
|
private OAuth2AuthorizedClientProvider authorizedClientProvider;
|
||||||
private Function<OAuth2AuthorizeRequest, Map<String, Object>> contextAttributesMapper;
|
private Function<OAuth2AuthorizeRequest, Map<String, Object>> contextAttributesMapper;
|
||||||
private OAuth2AuthorizationSuccessHandler authorizationSuccessHandler;
|
private OAuth2AuthorizationSuccessHandler authorizationSuccessHandler;
|
||||||
private OAuth2AuthorizationFailureHandler authorizationFailureHandler;
|
private OAuth2AuthorizationFailureHandler authorizationFailureHandler;
|
||||||
|
@ -102,6 +110,7 @@ public final class DefaultOAuth2AuthorizedClientManager implements OAuth2Authori
|
||||||
Assert.notNull(authorizedClientRepository, "authorizedClientRepository cannot be null");
|
Assert.notNull(authorizedClientRepository, "authorizedClientRepository cannot be null");
|
||||||
this.clientRegistrationRepository = clientRegistrationRepository;
|
this.clientRegistrationRepository = clientRegistrationRepository;
|
||||||
this.authorizedClientRepository = authorizedClientRepository;
|
this.authorizedClientRepository = authorizedClientRepository;
|
||||||
|
this.authorizedClientProvider = DEFAULT_AUTHORIZED_CLIENT_PROVIDER;
|
||||||
this.contextAttributesMapper = new DefaultContextAttributesMapper();
|
this.contextAttributesMapper = new DefaultContextAttributesMapper();
|
||||||
this.authorizationSuccessHandler = (authorizedClient, principal, attributes) ->
|
this.authorizationSuccessHandler = (authorizedClient, principal, attributes) ->
|
||||||
authorizedClientRepository.saveAuthorizedClient(authorizedClient, principal,
|
authorizedClientRepository.saveAuthorizedClient(authorizedClient, principal,
|
||||||
|
|
|
@ -23,6 +23,7 @@ import org.springframework.security.oauth2.client.ReactiveOAuth2AuthorizationFai
|
||||||
import org.springframework.security.oauth2.client.ReactiveOAuth2AuthorizationSuccessHandler;
|
import org.springframework.security.oauth2.client.ReactiveOAuth2AuthorizationSuccessHandler;
|
||||||
import org.springframework.security.oauth2.client.ReactiveOAuth2AuthorizedClientManager;
|
import org.springframework.security.oauth2.client.ReactiveOAuth2AuthorizedClientManager;
|
||||||
import org.springframework.security.oauth2.client.ReactiveOAuth2AuthorizedClientProvider;
|
import org.springframework.security.oauth2.client.ReactiveOAuth2AuthorizedClientProvider;
|
||||||
|
import org.springframework.security.oauth2.client.ReactiveOAuth2AuthorizedClientProviderBuilder;
|
||||||
import org.springframework.security.oauth2.client.RemoveAuthorizedClientReactiveOAuth2AuthorizationFailureHandler;
|
import org.springframework.security.oauth2.client.RemoveAuthorizedClientReactiveOAuth2AuthorizationFailureHandler;
|
||||||
import org.springframework.security.oauth2.client.registration.ClientRegistration;
|
import org.springframework.security.oauth2.client.registration.ClientRegistration;
|
||||||
import org.springframework.security.oauth2.client.registration.ReactiveClientRegistrationRepository;
|
import org.springframework.security.oauth2.client.registration.ReactiveClientRegistrationRepository;
|
||||||
|
@ -78,6 +79,13 @@ import java.util.function.Function;
|
||||||
* @see ReactiveOAuth2AuthorizationFailureHandler
|
* @see ReactiveOAuth2AuthorizationFailureHandler
|
||||||
*/
|
*/
|
||||||
public final class DefaultReactiveOAuth2AuthorizedClientManager implements ReactiveOAuth2AuthorizedClientManager {
|
public final class DefaultReactiveOAuth2AuthorizedClientManager implements ReactiveOAuth2AuthorizedClientManager {
|
||||||
|
private static final ReactiveOAuth2AuthorizedClientProvider DEFAULT_AUTHORIZED_CLIENT_PROVIDER =
|
||||||
|
ReactiveOAuth2AuthorizedClientProviderBuilder.builder()
|
||||||
|
.authorizationCode()
|
||||||
|
.refreshToken()
|
||||||
|
.clientCredentials()
|
||||||
|
.password()
|
||||||
|
.build();
|
||||||
|
|
||||||
private static final Mono<ServerWebExchange> currentServerWebExchangeMono = Mono.subscriberContext()
|
private static final Mono<ServerWebExchange> currentServerWebExchangeMono = Mono.subscriberContext()
|
||||||
.filter(c -> c.hasKey(ServerWebExchange.class))
|
.filter(c -> c.hasKey(ServerWebExchange.class))
|
||||||
|
@ -85,7 +93,7 @@ public final class DefaultReactiveOAuth2AuthorizedClientManager implements React
|
||||||
|
|
||||||
private final ReactiveClientRegistrationRepository clientRegistrationRepository;
|
private final ReactiveClientRegistrationRepository clientRegistrationRepository;
|
||||||
private final ServerOAuth2AuthorizedClientRepository authorizedClientRepository;
|
private final ServerOAuth2AuthorizedClientRepository authorizedClientRepository;
|
||||||
private ReactiveOAuth2AuthorizedClientProvider authorizedClientProvider = context -> Mono.empty();
|
private ReactiveOAuth2AuthorizedClientProvider authorizedClientProvider = DEFAULT_AUTHORIZED_CLIENT_PROVIDER;
|
||||||
private Function<OAuth2AuthorizeRequest, Mono<Map<String, Object>>> contextAttributesMapper = new DefaultContextAttributesMapper();
|
private Function<OAuth2AuthorizeRequest, Mono<Map<String, Object>>> contextAttributesMapper = new DefaultContextAttributesMapper();
|
||||||
private ReactiveOAuth2AuthorizationSuccessHandler authorizationSuccessHandler;
|
private ReactiveOAuth2AuthorizationSuccessHandler authorizationSuccessHandler;
|
||||||
private ReactiveOAuth2AuthorizationFailureHandler authorizationFailureHandler;
|
private ReactiveOAuth2AuthorizationFailureHandler authorizationFailureHandler;
|
||||||
|
|
|
@ -93,25 +93,9 @@ public final class OAuth2AuthorizedClientArgumentResolver implements HandlerMeth
|
||||||
OAuth2AuthorizedClientRepository authorizedClientRepository) {
|
OAuth2AuthorizedClientRepository authorizedClientRepository) {
|
||||||
Assert.notNull(clientRegistrationRepository, "clientRegistrationRepository cannot be null");
|
Assert.notNull(clientRegistrationRepository, "clientRegistrationRepository cannot be null");
|
||||||
Assert.notNull(authorizedClientRepository, "authorizedClientRepository cannot be null");
|
Assert.notNull(authorizedClientRepository, "authorizedClientRepository cannot be null");
|
||||||
this.authorizedClientManager = createDefaultAuthorizedClientManager(clientRegistrationRepository, authorizedClientRepository);
|
this.authorizedClientManager = new DefaultOAuth2AuthorizedClientManager(
|
||||||
this.defaultAuthorizedClientManager = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
private static OAuth2AuthorizedClientManager createDefaultAuthorizedClientManager(
|
|
||||||
ClientRegistrationRepository clientRegistrationRepository, OAuth2AuthorizedClientRepository authorizedClientRepository) {
|
|
||||||
|
|
||||||
OAuth2AuthorizedClientProvider authorizedClientProvider =
|
|
||||||
OAuth2AuthorizedClientProviderBuilder.builder()
|
|
||||||
.authorizationCode()
|
|
||||||
.refreshToken()
|
|
||||||
.clientCredentials()
|
|
||||||
.password()
|
|
||||||
.build();
|
|
||||||
DefaultOAuth2AuthorizedClientManager authorizedClientManager = new DefaultOAuth2AuthorizedClientManager(
|
|
||||||
clientRegistrationRepository, authorizedClientRepository);
|
clientRegistrationRepository, authorizedClientRepository);
|
||||||
authorizedClientManager.setAuthorizedClientProvider(authorizedClientProvider);
|
this.defaultAuthorizedClientManager = true;
|
||||||
|
|
||||||
return authorizedClientManager;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -208,14 +208,6 @@ public final class ServerOAuth2AuthorizedClientExchangeFilterFunction implements
|
||||||
ServerOAuth2AuthorizedClientRepository authorizedClientRepository,
|
ServerOAuth2AuthorizedClientRepository authorizedClientRepository,
|
||||||
ReactiveOAuth2AuthorizationFailureHandler authorizationFailureHandler) {
|
ReactiveOAuth2AuthorizationFailureHandler authorizationFailureHandler) {
|
||||||
|
|
||||||
ReactiveOAuth2AuthorizedClientProvider authorizedClientProvider =
|
|
||||||
ReactiveOAuth2AuthorizedClientProviderBuilder.builder()
|
|
||||||
.authorizationCode()
|
|
||||||
.refreshToken()
|
|
||||||
.clientCredentials()
|
|
||||||
.password()
|
|
||||||
.build();
|
|
||||||
|
|
||||||
// gh-7544
|
// gh-7544
|
||||||
if (authorizedClientRepository instanceof UnAuthenticatedServerOAuth2AuthorizedClientRepository) {
|
if (authorizedClientRepository instanceof UnAuthenticatedServerOAuth2AuthorizedClientRepository) {
|
||||||
UnAuthenticatedReactiveOAuth2AuthorizedClientManager unauthenticatedAuthorizedClientManager =
|
UnAuthenticatedReactiveOAuth2AuthorizedClientManager unauthenticatedAuthorizedClientManager =
|
||||||
|
@ -223,13 +215,19 @@ public final class ServerOAuth2AuthorizedClientExchangeFilterFunction implements
|
||||||
clientRegistrationRepository,
|
clientRegistrationRepository,
|
||||||
(UnAuthenticatedServerOAuth2AuthorizedClientRepository) authorizedClientRepository,
|
(UnAuthenticatedServerOAuth2AuthorizedClientRepository) authorizedClientRepository,
|
||||||
authorizationFailureHandler);
|
authorizationFailureHandler);
|
||||||
unauthenticatedAuthorizedClientManager.setAuthorizedClientProvider(authorizedClientProvider);
|
unauthenticatedAuthorizedClientManager.setAuthorizedClientProvider(
|
||||||
|
ReactiveOAuth2AuthorizedClientProviderBuilder.builder()
|
||||||
|
.authorizationCode()
|
||||||
|
.refreshToken()
|
||||||
|
.clientCredentials()
|
||||||
|
.password()
|
||||||
|
.build());
|
||||||
return unauthenticatedAuthorizedClientManager;
|
return unauthenticatedAuthorizedClientManager;
|
||||||
}
|
}
|
||||||
|
|
||||||
DefaultReactiveOAuth2AuthorizedClientManager authorizedClientManager = new DefaultReactiveOAuth2AuthorizedClientManager(
|
DefaultReactiveOAuth2AuthorizedClientManager authorizedClientManager =
|
||||||
|
new DefaultReactiveOAuth2AuthorizedClientManager(
|
||||||
clientRegistrationRepository, authorizedClientRepository);
|
clientRegistrationRepository, authorizedClientRepository);
|
||||||
authorizedClientManager.setAuthorizedClientProvider(authorizedClientProvider);
|
|
||||||
authorizedClientManager.setAuthorizationFailureHandler(authorizationFailureHandler);
|
authorizedClientManager.setAuthorizationFailureHandler(authorizationFailureHandler);
|
||||||
|
|
||||||
return authorizedClientManager;
|
return authorizedClientManager;
|
||||||
|
|
|
@ -216,32 +216,15 @@ public final class ServletOAuth2AuthorizedClientExchangeFilterFunction implement
|
||||||
authorizedClientRepository.removeAuthorizedClient(clientRegistrationId, principal,
|
authorizedClientRepository.removeAuthorizedClient(clientRegistrationId, principal,
|
||||||
(HttpServletRequest) attributes.get(HttpServletRequest.class.getName()),
|
(HttpServletRequest) attributes.get(HttpServletRequest.class.getName()),
|
||||||
(HttpServletResponse) attributes.get(HttpServletResponse.class.getName())));
|
(HttpServletResponse) attributes.get(HttpServletResponse.class.getName())));
|
||||||
this.authorizedClientManager = createDefaultAuthorizedClientManager(
|
DefaultOAuth2AuthorizedClientManager defaultAuthorizedClientManager =
|
||||||
clientRegistrationRepository, authorizedClientRepository, authorizationFailureHandler);
|
new DefaultOAuth2AuthorizedClientManager(
|
||||||
|
clientRegistrationRepository, authorizedClientRepository);
|
||||||
|
defaultAuthorizedClientManager.setAuthorizationFailureHandler(authorizationFailureHandler);
|
||||||
|
this.authorizedClientManager = defaultAuthorizedClientManager;
|
||||||
this.defaultAuthorizedClientManager = true;
|
this.defaultAuthorizedClientManager = true;
|
||||||
this.clientResponseHandler = new AuthorizationFailureForwarder(authorizationFailureHandler);
|
this.clientResponseHandler = new AuthorizationFailureForwarder(authorizationFailureHandler);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static OAuth2AuthorizedClientManager createDefaultAuthorizedClientManager(
|
|
||||||
ClientRegistrationRepository clientRegistrationRepository,
|
|
||||||
OAuth2AuthorizedClientRepository authorizedClientRepository,
|
|
||||||
OAuth2AuthorizationFailureHandler authorizationFailureHandler) {
|
|
||||||
|
|
||||||
OAuth2AuthorizedClientProvider authorizedClientProvider =
|
|
||||||
OAuth2AuthorizedClientProviderBuilder.builder()
|
|
||||||
.authorizationCode()
|
|
||||||
.refreshToken()
|
|
||||||
.clientCredentials()
|
|
||||||
.password()
|
|
||||||
.build();
|
|
||||||
DefaultOAuth2AuthorizedClientManager authorizedClientManager = new DefaultOAuth2AuthorizedClientManager(
|
|
||||||
clientRegistrationRepository, authorizedClientRepository);
|
|
||||||
authorizedClientManager.setAuthorizedClientProvider(authorizedClientProvider);
|
|
||||||
authorizedClientManager.setAuthorizationFailureHandler(authorizationFailureHandler);
|
|
||||||
|
|
||||||
return authorizedClientManager;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sets the {@link OAuth2AccessTokenResponseClient} used for getting an {@link OAuth2AuthorizedClient} for the client_credentials grant.
|
* Sets the {@link OAuth2AccessTokenResponseClient} used for getting an {@link OAuth2AuthorizedClient} for the client_credentials grant.
|
||||||
*
|
*
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright 2002-2019 the original author or authors.
|
* Copyright 2002-2020 the original author or authors.
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
|
@ -25,8 +25,6 @@ import org.springframework.security.core.context.ReactiveSecurityContextHolder;
|
||||||
import org.springframework.security.core.context.SecurityContext;
|
import org.springframework.security.core.context.SecurityContext;
|
||||||
import org.springframework.security.oauth2.client.OAuth2AuthorizeRequest;
|
import org.springframework.security.oauth2.client.OAuth2AuthorizeRequest;
|
||||||
import org.springframework.security.oauth2.client.OAuth2AuthorizedClient;
|
import org.springframework.security.oauth2.client.OAuth2AuthorizedClient;
|
||||||
import org.springframework.security.oauth2.client.ReactiveOAuth2AuthorizedClientProvider;
|
|
||||||
import org.springframework.security.oauth2.client.ReactiveOAuth2AuthorizedClientProviderBuilder;
|
|
||||||
import org.springframework.security.oauth2.client.ReactiveOAuth2AuthorizedClientManager;
|
import org.springframework.security.oauth2.client.ReactiveOAuth2AuthorizedClientManager;
|
||||||
import org.springframework.security.oauth2.client.annotation.RegisteredOAuth2AuthorizedClient;
|
import org.springframework.security.oauth2.client.annotation.RegisteredOAuth2AuthorizedClient;
|
||||||
import org.springframework.security.oauth2.client.authentication.OAuth2AuthenticationToken;
|
import org.springframework.security.oauth2.client.authentication.OAuth2AuthenticationToken;
|
||||||
|
@ -87,24 +85,8 @@ public final class OAuth2AuthorizedClientArgumentResolver implements HandlerMeth
|
||||||
ServerOAuth2AuthorizedClientRepository authorizedClientRepository) {
|
ServerOAuth2AuthorizedClientRepository authorizedClientRepository) {
|
||||||
Assert.notNull(clientRegistrationRepository, "clientRegistrationRepository cannot be null");
|
Assert.notNull(clientRegistrationRepository, "clientRegistrationRepository cannot be null");
|
||||||
Assert.notNull(authorizedClientRepository, "authorizedClientRepository cannot be null");
|
Assert.notNull(authorizedClientRepository, "authorizedClientRepository cannot be null");
|
||||||
this.authorizedClientManager = createDefaultAuthorizedClientManager(clientRegistrationRepository, authorizedClientRepository);
|
this.authorizedClientManager = new DefaultReactiveOAuth2AuthorizedClientManager(
|
||||||
}
|
|
||||||
|
|
||||||
private static ReactiveOAuth2AuthorizedClientManager createDefaultAuthorizedClientManager(
|
|
||||||
ReactiveClientRegistrationRepository clientRegistrationRepository, ServerOAuth2AuthorizedClientRepository authorizedClientRepository) {
|
|
||||||
|
|
||||||
ReactiveOAuth2AuthorizedClientProvider authorizedClientProvider =
|
|
||||||
ReactiveOAuth2AuthorizedClientProviderBuilder.builder()
|
|
||||||
.authorizationCode()
|
|
||||||
.refreshToken()
|
|
||||||
.clientCredentials()
|
|
||||||
.password()
|
|
||||||
.build();
|
|
||||||
DefaultReactiveOAuth2AuthorizedClientManager authorizedClientManager = new DefaultReactiveOAuth2AuthorizedClientManager(
|
|
||||||
clientRegistrationRepository, authorizedClientRepository);
|
clientRegistrationRepository, authorizedClientRepository);
|
||||||
authorizedClientManager.setAuthorizedClientProvider(authorizedClientProvider);
|
|
||||||
|
|
||||||
return authorizedClientManager;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
Loading…
Reference in New Issue