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 Details

  • Method Details

    • getOAuthRegistrationType

      @Nullable protected abstract String 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 an OAuth2AuthenticationToken and the registration id matches getOAuthRegistrationType()
      Parameters:
      authentication - The authentication token
      Returns:
    • getClientId

      protected String getClientId(@NonNull @NonNull org.springframework.security.oauth2.client.authentication.OAuth2AuthenticationToken authentication)
      Description copied from class: AbstractAuthenticationStrategyDelegate
      Get the Broadleaf Client Id from the authentication token
      Specified by:
      getClientId in class AbstractAuthenticationStrategyDelegate<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: AbstractAuthenticationStrategyDelegate
      Get the user's email address from the authentication token.
      Specified by:
      getEmail in class AbstractAuthenticationStrategyDelegate<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: AbstractAuthenticationStrategyDelegate
      Get the user's name from the authentication token
      Specified by:
      getName in class AbstractAuthenticationStrategyDelegate<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: AbstractAuthenticationStrategyDelegate
      Build a username from the authentication token.
      Specified by:
      buildUsername in class AbstractAuthenticationStrategyDelegate<org.springframework.security.oauth2.client.authentication.OAuth2AuthenticationToken>
      Returns: