Class OAuth2DeviceAuthorizationConsentAuthenticationProvider
java.lang.Object
org.springframework.security.oauth2.server.authorization.authentication.OAuth2DeviceAuthorizationConsentAuthenticationProvider
- All Implemented Interfaces:
AuthenticationProvider
public final class OAuth2DeviceAuthorizationConsentAuthenticationProvider
extends Object
implements AuthenticationProvider
An
AuthenticationProvider implementation for the Device Authorization Consent
used in the OAuth 2.0 Device Authorization Grant.- Since:
- 7.0
- See Also:
-
OAuth2DeviceAuthorizationConsentAuthenticationTokenOAuth2AuthorizationConsentOAuth2DeviceAuthorizationRequestAuthenticationProviderOAuth2DeviceVerificationAuthenticationProviderOAuth2DeviceCodeAuthenticationProviderRegisteredClientRepositoryOAuth2AuthorizationServiceOAuth2AuthorizationConsentService
-
Constructor Summary
ConstructorsConstructorDescriptionOAuth2DeviceAuthorizationConsentAuthenticationProvider(RegisteredClientRepository registeredClientRepository, OAuth2AuthorizationService authorizationService, OAuth2AuthorizationConsentService authorizationConsentService) Constructs anOAuth2DeviceAuthorizationConsentAuthenticationProviderusing the provided parameters. -
Method Summary
Modifier and TypeMethodDescriptionauthenticate(Authentication authentication) Performs authentication with the same contract asAuthenticationManager.authenticate(Authentication).voidsetAuthorizationConsentCustomizer(Consumer<OAuth2AuthorizationConsentAuthenticationContext> authorizationConsentCustomizer) Sets theConsumerproviding access to theOAuth2AuthorizationConsentAuthenticationContextcontaining anOAuth2AuthorizationConsent.Builderand additional context information.booleanReturnstrueif thisAuthenticationProvidersupports the indicatedAuthenticationobject.
-
Constructor Details
-
OAuth2DeviceAuthorizationConsentAuthenticationProvider
public OAuth2DeviceAuthorizationConsentAuthenticationProvider(RegisteredClientRepository registeredClientRepository, OAuth2AuthorizationService authorizationService, OAuth2AuthorizationConsentService authorizationConsentService) Constructs anOAuth2DeviceAuthorizationConsentAuthenticationProviderusing 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 by theProviderManager.- Specified by:
supportsin interfaceAuthenticationProvider- Returns:
trueif the implementation can more closely evaluate theAuthenticationclass presented
-
setAuthorizationConsentCustomizer
public void setAuthorizationConsentCustomizer(Consumer<OAuth2AuthorizationConsentAuthenticationContext> authorizationConsentCustomizer) Sets theConsumerproviding access to theOAuth2AuthorizationConsentAuthenticationContextcontaining anOAuth2AuthorizationConsent.Builderand additional context information.The following context attributes are available:
- The
OAuth2AuthorizationConsent.Builderused to build the authorization consent prior toOAuth2AuthorizationConsentService.save(OAuth2AuthorizationConsent). - The
Authenticationof typeOAuth2DeviceAuthorizationConsentAuthenticationToken. - The
RegisteredClientassociated with the device authorization request. - The
OAuth2Authorizationassociated with the state token presented in the device authorization consent request.
- Parameters:
authorizationConsentCustomizer- theConsumerproviding access to theOAuth2AuthorizationConsentAuthenticationContextcontaining anOAuth2AuthorizationConsent.Builder
- The
-