Class AbstractPairwiseSubMapper

java.lang.Object
org.keycloak.protocol.oidc.mappers.AbstractOIDCProtocolMapper
org.keycloak.protocol.oidc.mappers.AbstractPairwiseSubMapper
All Implemented Interfaces:
LogoutTokenMapper, OIDCAccessTokenMapper, OIDCIDTokenMapper, TokenIntrospectionTokenMapper, UserInfoTokenMapper, org.keycloak.protocol.ProtocolMapper, org.keycloak.provider.ConfiguredProvider, org.keycloak.provider.Provider, org.keycloak.provider.ProviderFactory<org.keycloak.protocol.ProtocolMapper>
Direct Known Subclasses:
SHA256PairwiseSubMapper

Set the 'sub' claim to pairwise .
Author:
Martin Hardselius
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static final String
     

    Fields inherited from class org.keycloak.protocol.oidc.mappers.AbstractOIDCProtocolMapper

    TOKEN_MAPPER_CATEGORY
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    abstract String
    generateSub(org.keycloak.models.ProtocolMapperModel mappingModel, String sectorIdentifier, String localSub)
    Generates a pairwise subject identifier.
    List<org.keycloak.provider.ProviderConfigProperty>
    Override to add additional provider configuration properties.
    final List<org.keycloak.provider.ProviderConfigProperty>
     
    final String
     
    final String
     
    abstract String
     
    protected void
    setAccessTokenSubject(org.keycloak.representations.IDToken token, String pairwiseSub)
     
    protected void
    setIDTokenSubject(org.keycloak.representations.IDToken token, String pairwiseSub)
     
    protected void
    setLogoutTokenSubject(org.keycloak.representations.LogoutToken token, String pairwiseSub)
     
    protected void
    setUserInfoTokenSubject(org.keycloak.representations.IDToken token, String pairwiseSub)
     
    org.keycloak.representations.AccessToken
    transformAccessToken(org.keycloak.representations.AccessToken token, org.keycloak.models.ProtocolMapperModel mappingModel, org.keycloak.models.KeycloakSession session, org.keycloak.models.UserSessionModel userSession, org.keycloak.models.ClientSessionContext clientSessionCtx)
     
    org.keycloak.representations.IDToken
    transformIDToken(org.keycloak.representations.IDToken token, org.keycloak.models.ProtocolMapperModel mappingModel, org.keycloak.models.KeycloakSession session, org.keycloak.models.UserSessionModel userSession, org.keycloak.models.ClientSessionContext clientSessionCtx)
     
    org.keycloak.representations.AccessToken
    transformIntrospectionToken(org.keycloak.representations.AccessToken token, org.keycloak.models.ProtocolMapperModel mappingModel, org.keycloak.models.KeycloakSession session, org.keycloak.models.UserSessionModel userSession, org.keycloak.models.ClientSessionContext clientSessionCtx)
     
    org.keycloak.representations.LogoutToken
    transformLogoutToken(org.keycloak.representations.LogoutToken token, org.keycloak.models.ProtocolMapperModel mappingModel, org.keycloak.models.KeycloakSession session, org.keycloak.models.UserSessionModel userSession, org.keycloak.models.ClientSessionContext clientSessionCtx)
     
    org.keycloak.representations.AccessToken
    transformUserInfoToken(org.keycloak.representations.AccessToken token, org.keycloak.models.ProtocolMapperModel mappingModel, org.keycloak.models.KeycloakSession session, org.keycloak.models.UserSessionModel userSession, org.keycloak.models.ClientSessionContext clientSessionCtx)
     
    void
    validateAdditionalConfig(org.keycloak.models.KeycloakSession session, org.keycloak.models.RealmModel realm, org.keycloak.models.ProtocolMapperContainerModel mapperContainer, org.keycloak.models.ProtocolMapperModel mapperModel)
    Override to add additional configuration validation.
    final void
    validateConfig(org.keycloak.models.KeycloakSession session, org.keycloak.models.RealmModel realm, org.keycloak.models.ProtocolMapperContainerModel mapperContainer, org.keycloak.models.ProtocolMapperModel mapperModel)
     

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

    Methods inherited from interface org.keycloak.provider.ConfiguredProvider

    getConfig, getHelpText

    Methods inherited from interface org.keycloak.protocol.ProtocolMapper

    getDisplayType, getPriority

    Methods inherited from interface org.keycloak.provider.ProviderFactory

    dependsOn, getConfigMetadata, order
  • Field Details

  • Constructor Details

    • AbstractPairwiseSubMapper

      public AbstractPairwiseSubMapper()
  • Method Details

    • getIdPrefix

      public abstract String getIdPrefix()
    • generateSub

      public abstract String generateSub(org.keycloak.models.ProtocolMapperModel mappingModel, String sectorIdentifier, String localSub)
      Generates a pairwise subject identifier.
      Parameters:
      mappingModel -
      sectorIdentifier - client sector identifier
      localSub - local subject identifier (user id)
      Returns:
      A pairwise subject identifier
    • getAdditionalConfigProperties

      public List<org.keycloak.provider.ProviderConfigProperty> getAdditionalConfigProperties()
      Override to add additional provider configuration properties. By default, a pairwise sub mapper will only contain configuration for a sector identifier URI.
      Returns:
      A list of provider configuration properties.
    • validateAdditionalConfig

      public void validateAdditionalConfig(org.keycloak.models.KeycloakSession session, org.keycloak.models.RealmModel realm, org.keycloak.models.ProtocolMapperContainerModel mapperContainer, org.keycloak.models.ProtocolMapperModel mapperModel) throws org.keycloak.protocol.ProtocolMapperConfigException
      Override to add additional configuration validation. Called when instance of mapperModel is created/updated for this protocolMapper through admin endpoint.
      Parameters:
      session -
      realm -
      mapperContainer - client or clientScope
      mapperModel -
      Throws:
      org.keycloak.protocol.ProtocolMapperConfigException - if configuration provided in mapperModel is not valid
    • getDisplayCategory

      public final String getDisplayCategory()
      Specified by:
      getDisplayCategory in interface org.keycloak.protocol.ProtocolMapper
    • transformIDToken

      public org.keycloak.representations.IDToken transformIDToken(org.keycloak.representations.IDToken token, org.keycloak.models.ProtocolMapperModel mappingModel, org.keycloak.models.KeycloakSession session, org.keycloak.models.UserSessionModel userSession, org.keycloak.models.ClientSessionContext clientSessionCtx)
      Specified by:
      transformIDToken in interface OIDCIDTokenMapper
      Overrides:
      transformIDToken in class AbstractOIDCProtocolMapper
    • transformAccessToken

      public org.keycloak.representations.AccessToken transformAccessToken(org.keycloak.representations.AccessToken token, org.keycloak.models.ProtocolMapperModel mappingModel, org.keycloak.models.KeycloakSession session, org.keycloak.models.UserSessionModel userSession, org.keycloak.models.ClientSessionContext clientSessionCtx)
      Specified by:
      transformAccessToken in interface OIDCAccessTokenMapper
      Overrides:
      transformAccessToken in class AbstractOIDCProtocolMapper
    • transformIntrospectionToken

      public org.keycloak.representations.AccessToken transformIntrospectionToken(org.keycloak.representations.AccessToken token, org.keycloak.models.ProtocolMapperModel mappingModel, org.keycloak.models.KeycloakSession session, org.keycloak.models.UserSessionModel userSession, org.keycloak.models.ClientSessionContext clientSessionCtx)
      Specified by:
      transformIntrospectionToken in interface TokenIntrospectionTokenMapper
      Overrides:
      transformIntrospectionToken in class AbstractOIDCProtocolMapper
    • transformLogoutToken

      public org.keycloak.representations.LogoutToken transformLogoutToken(org.keycloak.representations.LogoutToken token, org.keycloak.models.ProtocolMapperModel mappingModel, org.keycloak.models.KeycloakSession session, org.keycloak.models.UserSessionModel userSession, org.keycloak.models.ClientSessionContext clientSessionCtx)
      Specified by:
      transformLogoutToken in interface LogoutTokenMapper
    • transformUserInfoToken

      public org.keycloak.representations.AccessToken transformUserInfoToken(org.keycloak.representations.AccessToken token, org.keycloak.models.ProtocolMapperModel mappingModel, org.keycloak.models.KeycloakSession session, org.keycloak.models.UserSessionModel userSession, org.keycloak.models.ClientSessionContext clientSessionCtx)
      Specified by:
      transformUserInfoToken in interface UserInfoTokenMapper
      Overrides:
      transformUserInfoToken in class AbstractOIDCProtocolMapper
    • setIDTokenSubject

      protected void setIDTokenSubject(org.keycloak.representations.IDToken token, String pairwiseSub)
    • setAccessTokenSubject

      protected void setAccessTokenSubject(org.keycloak.representations.IDToken token, String pairwiseSub)
    • setLogoutTokenSubject

      protected void setLogoutTokenSubject(org.keycloak.representations.LogoutToken token, String pairwiseSub)
    • setUserInfoTokenSubject

      protected void setUserInfoTokenSubject(org.keycloak.representations.IDToken token, String pairwiseSub)
    • getConfigProperties

      public final List<org.keycloak.provider.ProviderConfigProperty> getConfigProperties()
      Specified by:
      getConfigProperties in interface org.keycloak.provider.ConfiguredProvider
    • validateConfig

      public final void validateConfig(org.keycloak.models.KeycloakSession session, org.keycloak.models.RealmModel realm, org.keycloak.models.ProtocolMapperContainerModel mapperContainer, org.keycloak.models.ProtocolMapperModel mapperModel) throws org.keycloak.protocol.ProtocolMapperConfigException
      Specified by:
      validateConfig in interface org.keycloak.protocol.ProtocolMapper
      Throws:
      org.keycloak.protocol.ProtocolMapperConfigException
    • getId

      public final String getId()
      Specified by:
      getId in interface org.keycloak.provider.ProviderFactory<org.keycloak.protocol.ProtocolMapper>