Class AbstractOAuthClientAuthenticationStrategyDelegate
java.lang.Object
com.broadleafcommerce.auth.user.web.authentication.session.AbstractAuthenticationStrategyDelegate<org.springframework.security.oauth2.client.authentication.OAuth2AuthenticationToken>
com.broadleafcommerce.auth.client.web.authentication.session.AbstractOAuthClientAuthenticationStrategyDelegate
- All Implemented Interfaces:
AuthenticationStrategyDelegate
- Direct Known Subclasses:
DefaultOIDCAuthenticationStrategyDelegate,GithubOAuthClientAuthenticationStrategyDelegate,GoogleOAuthClientAuthenticationStrategyDelegate
public abstract class AbstractOAuthClientAuthenticationStrategyDelegate
extends AbstractAuthenticationStrategyDelegate<org.springframework.security.oauth2.client.authentication.OAuth2AuthenticationToken>
Abstract
AuthenticationStrategyDelegate for converting OAuth2AuthenticationToken
to OAuth2UserDetails. This implements the #canHandle method to check that the
ClientRegistration id from the token matches #getOAuthRegistrationType. This implementation
offers reasonable defaults while allowing child classes to modify as needed.
Child classes can simply implement #getOAuthRegistrationType to return the OAuth Client
Registration id. Override methods to introduce specific behavior.- Author:
- Cade Rea (cade-rea)
-
Constructor Summary
ConstructorsConstructorDescriptionAbstractOAuthClientAuthenticationStrategyDelegate(OAuth2UserDetailsService oAuth2UserDetailsService, UserRegistrationService<User> registrationService, AuthRegistrationProperties registrationProperties, AuthorizedClientService<AuthorizedClient> clientService, ClientIdentityProviderProperties clientProperties, com.broadleafcommerce.common.extension.TypeFactory typeFactory, PasswordGenerator passwordGenerator) -
Method Summary
Modifier and TypeMethodDescriptionprotected StringbuildUsername(@NonNull org.springframework.security.oauth2.client.authentication.OAuth2AuthenticationToken authentication) Build a username from the authentication token.booleancanHandle(@NonNull org.springframework.security.core.Authentication authentication) Check if the given Authentication is anOAuth2AuthenticationTokenand the registration id matchesgetOAuthRegistrationType()protected StringgetClientId(@NonNull org.springframework.security.oauth2.client.authentication.OAuth2AuthenticationToken authentication) Get the Broadleaf Client Id from the authentication tokenprotected StringgetEmail(@NonNull org.springframework.security.oauth2.client.authentication.OAuth2AuthenticationToken authentication) Get the user's email address from the authentication token.protected StringgetName(@NonNull org.springframework.security.oauth2.client.authentication.OAuth2AuthenticationToken authentication) Get the user's name from the authentication tokenprotected abstract StringGets the registration type / client registration id that this delegate handlesMethods inherited from class com.broadleafcommerce.auth.user.web.authentication.session.AbstractAuthenticationStrategyDelegate
buildUserRegistration, generateRandomPassword, getAuthorizedClient, getClientProperties, getClientService, getOAuth2UserDetails, getOAuth2UserDetailsService, getPasswordGenerator, getRegistrationProperties, getRegistrationService, getTypeFactory, getUsername, getUserType, isAutoRegister, registerNewUser
-
Constructor Details
-
AbstractOAuthClientAuthenticationStrategyDelegate
public AbstractOAuthClientAuthenticationStrategyDelegate(OAuth2UserDetailsService oAuth2UserDetailsService, UserRegistrationService<User> registrationService, AuthRegistrationProperties registrationProperties, AuthorizedClientService<AuthorizedClient> clientService, ClientIdentityProviderProperties clientProperties, com.broadleafcommerce.common.extension.TypeFactory typeFactory, PasswordGenerator passwordGenerator)
-
-
Method Details
-
getOAuthRegistrationType
Gets the registration type / client registration id that this delegate handles- Returns:
- supported registration type
-
canHandle
public boolean canHandle(@NonNull @NonNull org.springframework.security.core.Authentication authentication) Check if the given Authentication is anOAuth2AuthenticationTokenand the registration id matchesgetOAuthRegistrationType()- Parameters:
authentication- The authentication token- Returns:
-
getClientId
protected String getClientId(@NonNull @NonNull org.springframework.security.oauth2.client.authentication.OAuth2AuthenticationToken authentication) Description copied from class:AbstractAuthenticationStrategyDelegateGet the Broadleaf Client Id from the authentication token- Specified by:
getClientIdin classAbstractAuthenticationStrategyDelegate<org.springframework.security.oauth2.client.authentication.OAuth2AuthenticationToken>- Returns:
-
getEmail
protected String getEmail(@NonNull @NonNull org.springframework.security.oauth2.client.authentication.OAuth2AuthenticationToken authentication) Description copied from class:AbstractAuthenticationStrategyDelegateGet the user's email address from the authentication token.- Specified by:
getEmailin classAbstractAuthenticationStrategyDelegate<org.springframework.security.oauth2.client.authentication.OAuth2AuthenticationToken>- Returns:
-
getName
protected String getName(@NonNull @NonNull org.springframework.security.oauth2.client.authentication.OAuth2AuthenticationToken authentication) Description copied from class:AbstractAuthenticationStrategyDelegateGet the user's name from the authentication token- Specified by:
getNamein classAbstractAuthenticationStrategyDelegate<org.springframework.security.oauth2.client.authentication.OAuth2AuthenticationToken>- Returns:
-
buildUsername
protected String buildUsername(@NonNull @NonNull org.springframework.security.oauth2.client.authentication.OAuth2AuthenticationToken authentication) Description copied from class:AbstractAuthenticationStrategyDelegateBuild a username from the authentication token.- Specified by:
buildUsernamein classAbstractAuthenticationStrategyDelegate<org.springframework.security.oauth2.client.authentication.OAuth2AuthenticationToken>- Returns:
-