public final class PasswordReactiveOAuth2AuthorizedClientProvider extends java.lang.Object implements ReactiveOAuth2AuthorizedClientProvider
ReactiveOAuth2AuthorizedClientProvider
for the password
grant.ReactiveOAuth2AuthorizedClientProvider
,
WebClientReactivePasswordTokenResponseClient
Constructor and Description |
---|
PasswordReactiveOAuth2AuthorizedClientProvider() |
Modifier and Type | Method and Description |
---|---|
reactor.core.publisher.Mono<OAuth2AuthorizedClient> |
authorize(OAuth2AuthorizationContext context)
Attempt to authorize (or re-authorize) the
client in the provided context . |
void |
setAccessTokenResponseClient(ReactiveOAuth2AccessTokenResponseClient<OAuth2PasswordGrantRequest> accessTokenResponseClient)
Sets the client used when requesting an access token credential at the Token Endpoint for the
password grant. |
void |
setClock(java.time.Clock clock)
Sets the
Clock used in Instant.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 the
access token expiry. |
public PasswordReactiveOAuth2AuthorizedClientProvider()
public reactor.core.publisher.Mono<OAuth2AuthorizedClient> authorize(OAuth2AuthorizationContext context)
client
in the provided context
.
Returns an empty Mono
if authorization (or re-authorization) is not supported,
e.g. the client's authorization grant type
is not password
OR
the username
and/or
password
attributes
are not available in the provided context
OR
the access token
is not expired.
The following context attributes
are supported:
OAuth2AuthorizationContext.USERNAME_ATTRIBUTE_NAME
(required) - a String
value for the resource owner's usernameOAuth2AuthorizationContext.PASSWORD_ATTRIBUTE_NAME
(required) - a String
value for the resource owner's passwordauthorize
in interface ReactiveOAuth2AuthorizedClientProvider
context
- the context that holds authorization-specific state for the clientOAuth2AuthorizedClient
or an empty Mono
if authorization (or re-authorization) is not supportedpublic void setAccessTokenResponseClient(ReactiveOAuth2AccessTokenResponseClient<OAuth2PasswordGrantRequest> accessTokenResponseClient)
password
grant.accessTokenResponseClient
- the client used when requesting an access token credential at the Token Endpoint for the password
grantpublic void setClockSkew(java.time.Duration clockSkew)
access token
expiry. The default is 60 seconds.
An access token is considered expired if it's before Instant.now(this.clock) - clockSkew
.clockSkew
- the maximum acceptable clock skewpublic void setClock(java.time.Clock clock)
Clock
used in Instant.now(Clock)
when checking the access token expiry.clock
- the clock