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, @Nullable AuthorizedClient authorizedClient)
      Description copied from interface: AuthenticationStrategyDelegate
      Determine if this delegate can map the given Authentication token to an OAuth2UserDetails
      Parameters:
      authentication - The authentication token
      authorizedClient - The authorized client
      Returns:
      Whether this delegate can map the token to an OAuth2UserDetails
    • 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>
      Parameters:
      authentication - The User's OAuth token issued by the third-party IDP.
      Returns:
      The Broadleaf Client ID from the authentication token.
    • 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>
      Parameters:
      authentication - The User's OAuth token issued by the third-party IDP.
      Returns:
      The user's email address from the authentication token.
    • 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>
      Parameters:
      authentication - The User's OAuth token issued by the third-party IDP.
      Returns:
      The user's name from the authentication token.
    • 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>
      Parameters:
      authentication - The User's OAuth token issued by the third-party IDP.
      Returns:
      A username derived from the authentication token.