Class OAuth2AuthorizationCodeRequestAuthenticationProvider
- All Implemented Interfaces:
AuthenticationProvider
AuthenticationProvider implementation for the OAuth 2.0 Authorization
Request used in the Authorization Code Grant.- Since:
- 7.0
- See Also:
-
OAuth2AuthorizationCodeRequestAuthenticationTokenOAuth2AuthorizationCodeRequestAuthenticationValidatorOAuth2AuthorizationCodeAuthenticationProviderOAuth2AuthorizationConsentAuthenticationProviderRegisteredClientRepositoryOAuth2AuthorizationServiceOAuth2AuthorizationConsentService- Section 4.1.1 Authorization Request
- Section 3.1.2.1 Authentication Request
-
Constructor Summary
ConstructorsConstructorDescriptionOAuth2AuthorizationCodeRequestAuthenticationProvider(RegisteredClientRepository registeredClientRepository, OAuth2AuthorizationService authorizationService, OAuth2AuthorizationConsentService authorizationConsentService) Constructs anOAuth2AuthorizationCodeRequestAuthenticationProviderusing the provided parameters. -
Method Summary
Modifier and TypeMethodDescriptionauthenticate(Authentication authentication) Performs authentication with the same contract asAuthenticationManager.authenticate(Authentication).voidsetAuthenticationValidator(Consumer<OAuth2AuthorizationCodeRequestAuthenticationContext> authenticationValidator) Sets theConsumerproviding access to theOAuth2AuthorizationCodeRequestAuthenticationContextand is responsible for validating specific OAuth 2.0 Authorization Request parameters associated in theOAuth2AuthorizationCodeRequestAuthenticationToken.voidsetAuthorizationCodeGenerator(OAuth2TokenGenerator<OAuth2AuthorizationCode> authorizationCodeGenerator) Sets theOAuth2TokenGeneratorthat generates theOAuth2AuthorizationCode.voidsetAuthorizationConsentRequired(Predicate<OAuth2AuthorizationCodeRequestAuthenticationContext> authorizationConsentRequired) Sets thePredicateused to determine if authorization consent is required.booleanReturnstrueif thisAuthenticationProvidersupports the indicatedAuthenticationobject.
-
Constructor Details
-
OAuth2AuthorizationCodeRequestAuthenticationProvider
public OAuth2AuthorizationCodeRequestAuthenticationProvider(RegisteredClientRepository registeredClientRepository, OAuth2AuthorizationService authorizationService, OAuth2AuthorizationConsentService authorizationConsentService) Constructs anOAuth2AuthorizationCodeRequestAuthenticationProviderusing the provided parameters.- Parameters:
registeredClientRepository- the repository of registered clientsauthorizationService- the authorization serviceauthorizationConsentService- the authorization consent service
-
-
Method Details
-
authenticate
Description copied from interface:AuthenticationProviderPerforms authentication with the same contract asAuthenticationManager.authenticate(Authentication).- Specified by:
authenticatein interfaceAuthenticationProvider- Parameters:
authentication- the authentication request object.- Returns:
- a fully authenticated object including credentials. May return
nullif theAuthenticationProvideris unable to support authentication of the passedAuthenticationobject. In such a case, the nextAuthenticationProviderthat supports the presentedAuthenticationclass will be tried. - Throws:
AuthenticationException- if authentication fails.
-
supports
Description copied from interface:AuthenticationProviderReturnstrueif thisAuthenticationProvidersupports the indicatedAuthenticationobject.Returning
truedoes not guarantee anAuthenticationProviderwill be able to authenticate the presentedAuthenticationobject. It simply indicates it can support closer evaluation of it. AnAuthenticationProvidercan still returnnullfrom theAuthenticationProvider.authenticate(Authentication)method to indicate anotherAuthenticationProvidershould be tried.Selection of an
AuthenticationProvidercapable of performing authentication is conducted at runtime theProviderManager.- Specified by:
supportsin interfaceAuthenticationProvider- Returns:
trueif the implementation can more closely evaluate theAuthenticationclass presented
-
setAuthorizationCodeGenerator
public void setAuthorizationCodeGenerator(OAuth2TokenGenerator<OAuth2AuthorizationCode> authorizationCodeGenerator) Sets theOAuth2TokenGeneratorthat generates theOAuth2AuthorizationCode.- Parameters:
authorizationCodeGenerator- theOAuth2TokenGeneratorthat generates theOAuth2AuthorizationCode
-
setAuthenticationValidator
public void setAuthenticationValidator(Consumer<OAuth2AuthorizationCodeRequestAuthenticationContext> authenticationValidator) Sets theConsumerproviding access to theOAuth2AuthorizationCodeRequestAuthenticationContextand is responsible for validating specific OAuth 2.0 Authorization Request parameters associated in theOAuth2AuthorizationCodeRequestAuthenticationToken. The default authentication validator isOAuth2AuthorizationCodeRequestAuthenticationValidator.NOTE: The authentication validator MUST throw
OAuth2AuthorizationCodeRequestAuthenticationExceptionif validation fails.- Parameters:
authenticationValidator- theConsumerproviding access to theOAuth2AuthorizationCodeRequestAuthenticationContextand is responsible for validating specific OAuth 2.0 Authorization Request parameters
-
setAuthorizationConsentRequired
public void setAuthorizationConsentRequired(Predicate<OAuth2AuthorizationCodeRequestAuthenticationContext> authorizationConsentRequired) Sets thePredicateused to determine if authorization consent is required.The
OAuth2AuthorizationCodeRequestAuthenticationContextgives the predicate access to theOAuth2AuthorizationCodeRequestAuthenticationToken, as well as, the following context attributes:- The
RegisteredClientassociated with the authorization request. - The
OAuth2AuthorizationRequestcontaining the authorization request parameters. - The
OAuth2AuthorizationConsentpreviously granted to theRegisteredClient, ornullif not available.
- Parameters:
authorizationConsentRequired- thePredicateused to determine if authorization consent is required
- The
-