Class PasswordReactiveOAuth2AuthorizedClientProvider
- java.lang.Object
-
- org.springframework.security.oauth2.client.PasswordReactiveOAuth2AuthorizedClientProvider
-
- All Implemented Interfaces:
ReactiveOAuth2AuthorizedClientProvider
public final class PasswordReactiveOAuth2AuthorizedClientProvider extends java.lang.Object implements ReactiveOAuth2AuthorizedClientProvider
An implementation of aReactiveOAuth2AuthorizedClientProvider
for thepassword
grant.- Since:
- 5.2
- See Also:
ReactiveOAuth2AuthorizedClientProvider
,WebClientReactivePasswordTokenResponseClient
-
-
Constructor Summary
Constructors Constructor Description PasswordReactiveOAuth2AuthorizedClientProvider()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description reactor.core.publisher.Mono<OAuth2AuthorizedClient>
authorize(OAuth2AuthorizationContext context)
Attempt to authorize (or re-authorize) theclient
in the providedcontext
.void
setAccessTokenResponseClient(ReactiveOAuth2AccessTokenResponseClient<OAuth2PasswordGrantRequest> accessTokenResponseClient)
Sets the client used when requesting an access token credential at the Token Endpoint for thepassword
grant.void
setClock(java.time.Clock clock)
Sets theClock
used inInstant.now(Clock)
when checking the access token expiry.void
setClockSkew(java.time.Duration clockSkew)
Sets the maximum acceptable clock skew, which is used when checking theaccess token
expiry.
-
-
-
Method Detail
-
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 notpassword
OR theusername
and/orpassword
attributes are not available in the providedcontext
OR theaccess token
is not expired.The following
context attributes
are supported:OAuth2AuthorizationContext.USERNAME_ATTRIBUTE_NAME
(required) - aString
value for the resource owner's usernameOAuth2AuthorizationContext.PASSWORD_ATTRIBUTE_NAME
(required) - aString
value for the resource owner's password
- 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<OAuth2PasswordGrantRequest> accessTokenResponseClient)
Sets the client used when requesting an access token credential at the Token Endpoint for thepassword
grant.- Parameters:
accessTokenResponseClient
- the client used when requesting an access token credential at the Token Endpoint for thepassword
grant
-
setClockSkew
public void setClockSkew(java.time.Duration clockSkew)
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
public void setClock(java.time.Clock clock)
Sets theClock
used inInstant.now(Clock)
when checking the access token expiry.- Parameters:
clock
- the clock
-
-