Class ClientCredentialsReactiveOAuth2AuthorizedClientProvider
java.lang.Object
org.springframework.security.oauth2.client.ClientCredentialsReactiveOAuth2AuthorizedClientProvider
- All Implemented Interfaces:
ReactiveOAuth2AuthorizedClientProvider
public final class ClientCredentialsReactiveOAuth2AuthorizedClientProvider
extends Object
implements ReactiveOAuth2AuthorizedClientProvider
An implementation of a
ReactiveOAuth2AuthorizedClientProvider
for the
client_credentials
grant.-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionreactor.core.publisher.Mono<OAuth2AuthorizedClient>
authorize
(OAuth2AuthorizationContext context) Attempt to authorize (or re-authorize) theclient
in the providedcontext
.void
setAccessTokenResponseClient
(ReactiveOAuth2AccessTokenResponseClient<OAuth2ClientCredentialsGrantRequest> accessTokenResponseClient) Sets the client used when requesting an access token credential at the Token Endpoint for theclient_credentials
grant.void
Sets theClock
used inInstant.now(Clock)
when checking the access token expiry.void
setClockSkew
(Duration clockSkew) Sets the maximum acceptable clock skew, which is used when checking theaccess token
expiry.
-
Constructor Details
-
ClientCredentialsReactiveOAuth2AuthorizedClientProvider
public ClientCredentialsReactiveOAuth2AuthorizedClientProvider()
-
-
Method Details
-
authorize
public reactor.core.publisher.Mono<OAuth2AuthorizedClient> authorize(OAuth2AuthorizationContext context) Attempt to authorize (or re-authorize) theclient
in the providedcontext
. Returns an emptyMono
if authorization (or re-authorization) is not supported, e.g. the client'sauthorization grant type
is notclient_credentials
OR theaccess token
is not expired.- Specified by:
authorize
in interfaceReactiveOAuth2AuthorizedClientProvider
- Parameters:
context
- the context that holds authorization-specific state for the client- Returns:
- the
OAuth2AuthorizedClient
or an emptyMono
if authorization (or re-authorization) is not supported
-
setAccessTokenResponseClient
public void setAccessTokenResponseClient(ReactiveOAuth2AccessTokenResponseClient<OAuth2ClientCredentialsGrantRequest> accessTokenResponseClient) Sets the client used when requesting an access token credential at the Token Endpoint for theclient_credentials
grant.- Parameters:
accessTokenResponseClient
- the client used when requesting an access token credential at the Token Endpoint for theclient_credentials
grant
-
setClockSkew
Sets the maximum acceptable clock skew, which is used when checking theaccess token
expiry. The default is 60 seconds.An access token is considered expired if
OAuth2AccessToken#getExpiresAt() - clockSkew
is before the current timeclock#instant()
.- Parameters:
clockSkew
- the maximum acceptable clock skew
-
setClock
Sets theClock
used inInstant.now(Clock)
when checking the access token expiry.- Parameters:
clock
- the clock
-