Class AbstractActionTokenHandler<T extends org.keycloak.representations.JsonWebToken>

java.lang.Object
org.keycloak.authentication.actiontoken.AbstractActionTokenHandler<T>
All Implemented Interfaces:
ActionTokenHandler<T>, ActionTokenHandlerFactory<T>, org.keycloak.provider.Provider, org.keycloak.provider.ProviderFactory<ActionTokenHandler<T>>
Direct Known Subclasses:
CredentialOfferActionTokenHandler, ExecuteActionsActionTokenHandler, IdpVerifyAccountLinkActionTokenHandler, InviteOrgActionTokenHandler, ResetCredentialsActionTokenHandler, UpdateEmailActionTokenHandler, VerifyEmailActionTokenHandler

public abstract class AbstractActionTokenHandler<T extends org.keycloak.representations.JsonWebToken> extends Object implements ActionTokenHandler<T>, ActionTokenHandlerFactory<T>
Author:
hmlnarik
  • Constructor Details

    • AbstractActionTokenHandler

      public AbstractActionTokenHandler(String id, Class<T> tokenClass, String defaultErrorMessage, org.keycloak.events.EventType defaultEventType, String defaultEventError)
  • Method Details

    • create

      public ActionTokenHandler<T> create(org.keycloak.models.KeycloakSession session)
      Specified by:
      create in interface org.keycloak.provider.ProviderFactory<T extends org.keycloak.representations.JsonWebToken>
    • init

      public void init(org.keycloak.Config.Scope config)
      Specified by:
      init in interface org.keycloak.provider.ProviderFactory<T extends org.keycloak.representations.JsonWebToken>
    • postInit

      public void postInit(org.keycloak.models.KeycloakSessionFactory factory)
      Specified by:
      postInit in interface org.keycloak.provider.ProviderFactory<T extends org.keycloak.representations.JsonWebToken>
    • getId

      public String getId()
      Specified by:
      getId in interface org.keycloak.provider.ProviderFactory<T extends org.keycloak.representations.JsonWebToken>
    • close

      public void close()
      Specified by:
      close in interface org.keycloak.provider.Provider
      Specified by:
      close in interface org.keycloak.provider.ProviderFactory<T extends org.keycloak.representations.JsonWebToken>
    • getTokenClass

      public Class<T> getTokenClass()
      Description copied from interface: ActionTokenHandler
      Returns the Java token class for use with deserialization.
      Specified by:
      getTokenClass in interface ActionTokenHandler<T extends org.keycloak.representations.JsonWebToken>
      Returns:
    • eventType

      public org.keycloak.events.EventType eventType()
      Description copied from interface: ActionTokenHandler
      Returns a event type logged with EventBuilder class.
      Specified by:
      eventType in interface ActionTokenHandler<T extends org.keycloak.representations.JsonWebToken>
      Returns:
    • getDefaultErrorMessage

      public String getDefaultErrorMessage()
      Description copied from interface: ActionTokenHandler
      Returns an error to be shown in the response when token handling fails and no more specific error message is provided.
      Specified by:
      getDefaultErrorMessage in interface ActionTokenHandler<T extends org.keycloak.representations.JsonWebToken>
      Returns:
    • getDefaultEventError

      public String getDefaultEventError()
      Description copied from interface: ActionTokenHandler
      Returns an error to be shown in the EventBuilder detail when token handling fails and no more specific error is provided.
      Specified by:
      getDefaultEventError in interface ActionTokenHandler<T extends org.keycloak.representations.JsonWebToken>
      Returns:
    • getAuthenticationSessionIdFromToken

      public String getAuthenticationSessionIdFromToken(T token, ActionTokenContext<T> tokenContext, org.keycloak.sessions.AuthenticationSessionModel currentAuthSession)
      Description copied from interface: ActionTokenHandler
      Returns a compound authentication session ID requested from within the given token that the handler should attempt to join.
      Specified by:
      getAuthenticationSessionIdFromToken in interface ActionTokenHandler<T extends org.keycloak.representations.JsonWebToken>
      Parameters:
      token - Token. Can be null
      currentAuthSession - Authentication session that is currently in progress, null if no authentication session is not set
      Returns:
      Authentication session ID (can be null if the token does not contain authentication session ID)
      See Also:
      • AuthenticationSessionCompoundId
    • startFreshAuthenticationSession

      public org.keycloak.sessions.AuthenticationSessionModel startFreshAuthenticationSession(T token, ActionTokenContext<T> tokenContext)
      Description copied from interface: ActionTokenHandler
      Creates a fresh authentication session according to the information from the token. The default implementation creates a new authentication session that requests termination after required actions.
      Specified by:
      startFreshAuthenticationSession in interface ActionTokenHandler<T extends org.keycloak.representations.JsonWebToken>
      Returns:
    • canUseTokenRepeatedly

      public boolean canUseTokenRepeatedly(T token, ActionTokenContext<T> tokenContext)
      Description copied from interface: ActionTokenHandler
      Returns true when the token can be used repeatedly to invoke the action, false when the token is intended to be for single use only.
      Specified by:
      canUseTokenRepeatedly in interface ActionTokenHandler<T extends org.keycloak.representations.JsonWebToken>
      Returns:
      see above
    • verifyEmail

      protected org.keycloak.TokenVerifier.Predicate<DefaultActionToken> verifyEmail(ActionTokenContext<? extends DefaultActionToken> context)