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 ReactiveOAuth2AuthorizedClientProvidercontext - 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
OAuth2AccessToken#getExpiresAt() - clockSkew is before the current time
clock#instant().
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