Class ScriptBasedOIDCProtocolMapper

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

public class ScriptBasedOIDCProtocolMapper extends AbstractOIDCProtocolMapper implements OIDCAccessTokenMapper, OIDCIDTokenMapper, UserInfoTokenMapper, OIDCAccessTokenResponseMapper, TokenIntrospectionTokenMapper, org.keycloak.provider.EnvironmentDependentProviderFactory
OIDC ProtocolMapper that uses a provided JavaScript fragment to compute the token claim value.
Author:
Thomas Darimont
  • Field Details

  • Constructor Details

    • ScriptBasedOIDCProtocolMapper

      public ScriptBasedOIDCProtocolMapper()
  • Method Details

    • getConfigProperties

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

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

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

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

      public String getHelpText()
      Specified by:
      getHelpText in interface org.keycloak.provider.ConfiguredProvider
    • isSupported

      public boolean isSupported(org.keycloak.Config.Scope config)
      Specified by:
      isSupported in interface org.keycloak.provider.EnvironmentDependentProviderFactory
    • getPriority

      public int getPriority()
      Specified by:
      getPriority in interface org.keycloak.protocol.ProtocolMapper
    • setClaim

      protected void setClaim(org.keycloak.representations.IDToken token, org.keycloak.models.ProtocolMapperModel mappingModel, org.keycloak.models.UserSessionModel userSession, org.keycloak.models.KeycloakSession keycloakSession, org.keycloak.models.ClientSessionContext clientSessionCtx)
      Description copied from class: AbstractOIDCProtocolMapper
      Intended to be overridden in ProtocolMapper implementations to add claims to an token.
      Overrides:
      setClaim in class AbstractOIDCProtocolMapper
    • setClaim

      protected void setClaim(org.keycloak.representations.AccessTokenResponse accessTokenResponse, org.keycloak.models.ProtocolMapperModel mappingModel, org.keycloak.models.UserSessionModel userSession, org.keycloak.models.KeycloakSession keycloakSession, org.keycloak.models.ClientSessionContext clientSessionCtx)
      Description copied from class: AbstractOIDCProtocolMapper
      Intended to be overridden in ProtocolMapper implementations to add claims to an token.
      Overrides:
      setClaim in class AbstractOIDCProtocolMapper
    • validateConfig

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

      protected String getScriptCode(org.keycloak.models.ProtocolMapperModel mapperModel)
    • create

      public static org.keycloak.models.ProtocolMapperModel create(String name, String userAttribute, String tokenClaimName, String claimType, boolean accessToken, boolean idToken, boolean introspectionEndpoint, String script, boolean multiValued)