Class DefaultReactiveOAuth2AuthorizedClientManager
- java.lang.Object
-
- org.springframework.security.oauth2.client.web.DefaultReactiveOAuth2AuthorizedClientManager
-
- All Implemented Interfaces:
ReactiveOAuth2AuthorizedClientManager
public final class DefaultReactiveOAuth2AuthorizedClientManager extends java.lang.Object implements ReactiveOAuth2AuthorizedClientManager
The default implementation of aReactiveOAuth2AuthorizedClientManagerfor use within the context of aServerWebExchange.(When operating outside of the context of a
ServerWebExchange, useAuthorizedClientServiceReactiveOAuth2AuthorizedClientManagerinstead.)This is a reactive equivalent of
DefaultOAuth2AuthorizedClientManager.Authorized Client Persistence
This client manager utilizes a
ServerOAuth2AuthorizedClientRepositoryto persistOAuth2AuthorizedClients.By default, when an authorization attempt succeeds, the
OAuth2AuthorizedClientwill be saved in the authorized client repository. This functionality can be changed by configuring a customReactiveOAuth2AuthorizationSuccessHandlerviasetAuthorizationSuccessHandler(ReactiveOAuth2AuthorizationSuccessHandler).By default, when an authorization attempt fails due to an "invalid_grant" error, the previously saved
OAuth2AuthorizedClientwill be removed from the authorized client repository. (The "invalid_grant" error generally occurs when a refresh token that is no longer valid is used to retrieve a new access token.) This functionality can be changed by configuring a customReactiveOAuth2AuthorizationFailureHandlerviasetAuthorizationFailureHandler(ReactiveOAuth2AuthorizationFailureHandler).
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classDefaultReactiveOAuth2AuthorizedClientManager.DefaultContextAttributesMapperThe default implementation of thecontextAttributesMapper.
-
Constructor Summary
Constructors Constructor Description DefaultReactiveOAuth2AuthorizedClientManager(ReactiveClientRegistrationRepository clientRegistrationRepository, ServerOAuth2AuthorizedClientRepository authorizedClientRepository)Constructs aDefaultReactiveOAuth2AuthorizedClientManagerusing the provided parameters.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description reactor.core.publisher.Mono<OAuth2AuthorizedClient>authorize(OAuth2AuthorizeRequest authorizeRequest)Attempt to authorize or re-authorize (if required) theclientidentified by the providedclientRegistrationId.voidsetAuthorizationFailureHandler(ReactiveOAuth2AuthorizationFailureHandler authorizationFailureHandler)Sets the handler that handles authorization failures.voidsetAuthorizationSuccessHandler(ReactiveOAuth2AuthorizationSuccessHandler authorizationSuccessHandler)Sets the handler that handles successful authorizations.voidsetAuthorizedClientProvider(ReactiveOAuth2AuthorizedClientProvider authorizedClientProvider)Sets theReactiveOAuth2AuthorizedClientProviderused for authorizing (or re-authorizing) an OAuth 2.0 Client.voidsetContextAttributesMapper(java.util.function.Function<OAuth2AuthorizeRequest,reactor.core.publisher.Mono<java.util.Map<java.lang.String,java.lang.Object>>> contextAttributesMapper)Sets theFunctionused for mapping attribute(s) from theOAuth2AuthorizeRequestto aMapof attributes to be associated to theauthorization context.
-
-
-
Constructor Detail
-
DefaultReactiveOAuth2AuthorizedClientManager
public DefaultReactiveOAuth2AuthorizedClientManager(ReactiveClientRegistrationRepository clientRegistrationRepository, ServerOAuth2AuthorizedClientRepository authorizedClientRepository)
Constructs aDefaultReactiveOAuth2AuthorizedClientManagerusing the provided parameters.- Parameters:
clientRegistrationRepository- the repository of client registrationsauthorizedClientRepository- the repository of authorized clients
-
-
Method Detail
-
authorize
public reactor.core.publisher.Mono<OAuth2AuthorizedClient> authorize(OAuth2AuthorizeRequest authorizeRequest)
Description copied from interface:ReactiveOAuth2AuthorizedClientManagerAttempt to authorize or re-authorize (if required) theclientidentified by the providedclientRegistrationId. Implementations must return an emptyMonoif authorization is not supported for the specified client, e.g. the associatedReactiveOAuth2AuthorizedClientProvider(s) does not support theauthorization granttype configured for the client.In the case of re-authorization, implementations must return the provided
authorized clientif re-authorization is not supported for the client OR is not required, e.g. arefresh tokenis not available OR theaccess tokenis not expired.- Specified by:
authorizein interfaceReactiveOAuth2AuthorizedClientManager- Parameters:
authorizeRequest- the authorize request- Returns:
- the
OAuth2AuthorizedClientor an emptyMonoif authorization is not supported for the specified client
-
setAuthorizedClientProvider
public void setAuthorizedClientProvider(ReactiveOAuth2AuthorizedClientProvider authorizedClientProvider)
Sets theReactiveOAuth2AuthorizedClientProviderused for authorizing (or re-authorizing) an OAuth 2.0 Client.- Parameters:
authorizedClientProvider- theReactiveOAuth2AuthorizedClientProviderused for authorizing (or re-authorizing) an OAuth 2.0 Client
-
setContextAttributesMapper
public void setContextAttributesMapper(java.util.function.Function<OAuth2AuthorizeRequest,reactor.core.publisher.Mono<java.util.Map<java.lang.String,java.lang.Object>>> contextAttributesMapper)
Sets theFunctionused for mapping attribute(s) from theOAuth2AuthorizeRequestto aMapof attributes to be associated to theauthorization context.- Parameters:
contextAttributesMapper- theFunctionused for supplying theMapof attributes to theauthorization context
-
setAuthorizationSuccessHandler
public void setAuthorizationSuccessHandler(ReactiveOAuth2AuthorizationSuccessHandler authorizationSuccessHandler)
Sets the handler that handles successful authorizations. The default savesOAuth2AuthorizedClients in theServerOAuth2AuthorizedClientRepository.- Parameters:
authorizationSuccessHandler- the handler that handles successful authorizations.- Since:
- 5.3
-
setAuthorizationFailureHandler
public void setAuthorizationFailureHandler(ReactiveOAuth2AuthorizationFailureHandler authorizationFailureHandler)
Sets the handler that handles authorization failures.A
RemoveAuthorizedClientReactiveOAuth2AuthorizationFailureHandleris used by default.- Parameters:
authorizationFailureHandler- the handler that handles authorization failures.- Since:
- 5.3
- See Also:
RemoveAuthorizedClientReactiveOAuth2AuthorizationFailureHandler
-
-