Class RefreshTokenReactiveOAuth2AuthorizedClientProvider
java.lang.Object
org.springframework.security.oauth2.client.RefreshTokenReactiveOAuth2AuthorizedClientProvider
- All Implemented Interfaces:
ReactiveOAuth2AuthorizedClientProvider
public final class RefreshTokenReactiveOAuth2AuthorizedClientProvider
extends Object
implements ReactiveOAuth2AuthorizedClientProvider
An implementation of a
ReactiveOAuth2AuthorizedClientProvider
for the
refresh_token
grant.- Since:
- 5.2
- See Also:
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionreactor.core.publisher.Mono<OAuth2AuthorizedClient>
authorize
(OAuth2AuthorizationContext context) Attempt to re-authorize theclient
in the providedcontext
.void
setAccessTokenResponseClient
(ReactiveOAuth2AccessTokenResponseClient<OAuth2RefreshTokenGrantRequest> accessTokenResponseClient) Sets the client used when requesting an access token credential at the Token Endpoint for therefresh_token
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
-
RefreshTokenReactiveOAuth2AuthorizedClientProvider
public RefreshTokenReactiveOAuth2AuthorizedClientProvider()
-
-
Method Details
-
authorize
public reactor.core.publisher.Mono<OAuth2AuthorizedClient> authorize(OAuth2AuthorizationContext context) Attempt to re-authorize theclient
in the providedcontext
. Returns an emptyMono
if re-authorization is not supported, e.g. the client is not authorized OR therefresh token
is not available for the authorized client OR theaccess token
is not expired.The following
context attributes
are supported:"org.springframework.security.oauth2.client.REQUEST_SCOPE"
(optional) - aString[]
of scope(s) to be requested by theclient
- Specified by:
authorize
in interfaceReactiveOAuth2AuthorizedClientProvider
- Parameters:
context
- the context that holds authorization-specific state for the client- Returns:
- the
OAuth2AuthorizedClient
or an emptyMono
if re-authorization is not supported
-
setAccessTokenResponseClient
public void setAccessTokenResponseClient(ReactiveOAuth2AccessTokenResponseClient<OAuth2RefreshTokenGrantRequest> accessTokenResponseClient) Sets the client used when requesting an access token credential at the Token Endpoint for therefresh_token
grant.- Parameters:
accessTokenResponseClient
- the client used when requesting an access token credential at the Token Endpoint for therefresh_token
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
-