Class AbstractJsonUserAttributeMapper

java.lang.Object
org.keycloak.broker.provider.AbstractIdentityProviderMapper
org.keycloak.broker.oidc.mappers.AbstractJsonUserAttributeMapper
All Implemented Interfaces:
org.keycloak.broker.provider.IdentityProviderMapper, org.keycloak.provider.ConfiguredProvider, org.keycloak.provider.Provider, org.keycloak.provider.ProviderFactory<org.keycloak.broker.provider.IdentityProviderMapper>
Direct Known Subclasses:
FacebookUserAttributeMapper, GitHubUserAttributeMapper, GoogleUserAttributeMapper, InstagramUserAttributeMapper, LinkedInUserAttributeMapper, MicrosoftUserAttributeMapper, OpenshiftV4AttributeMapper, PayPalUserAttributeMapper, StackoverflowUserAttributeMapper

public abstract class AbstractJsonUserAttributeMapper extends org.keycloak.broker.provider.AbstractIdentityProviderMapper
Abstract class for Social Provider mappers which allow mapping of JSON user profile field into Keycloak user attribute. Concrete mapper classes with own ID and provider mapping must be implemented for each social provider who uses JsonNode user profile.
Author:
Vlastimil Elias (velias at redhat dot com)
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static final String
    Config param where name of mapping source JSON User Profile field is stored.
    static final String
    Config param where name of mapping target USer attribute is stored.
    static final String
    Key in BrokeredIdentityContext.getContextData() where JsonNode with user profile is stored.
    protected static final org.jboss.logging.Logger
     
    protected static final org.jboss.logging.Logger
     

    Fields inherited from interface org.keycloak.broker.provider.IdentityProviderMapper

    ANY_PROVIDER, DEFAULT_IDENTITY_PROVIDER_MAPPER_SYNC_MODES
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    List<org.keycloak.provider.ProviderConfigProperty>
     
     
     
     
    static Object
    getJsonValue(com.fasterxml.jackson.databind.JsonNode baseNode, String fieldPath)
     
    protected static Object
    getJsonValue(org.keycloak.models.IdentityProviderMapperModel mapperModel, org.keycloak.broker.provider.BrokeredIdentityContext context)
     
    void
    preprocessFederatedIdentity(org.keycloak.models.KeycloakSession session, org.keycloak.models.RealmModel realm, org.keycloak.models.IdentityProviderMapperModel mapperModel, org.keycloak.broker.provider.BrokeredIdentityContext context)
     
    static void
    storeUserProfileForMapper(org.keycloak.broker.provider.BrokeredIdentityContext user, com.fasterxml.jackson.databind.JsonNode profile, String provider)
    Store used profile JsonNode into user context for later use by this mapper.
    boolean
    supportsSyncMode(org.keycloak.models.IdentityProviderSyncMode syncMode)
     
    void
    updateBrokeredUser(org.keycloak.models.KeycloakSession session, org.keycloak.models.RealmModel realm, org.keycloak.models.UserModel user, org.keycloak.models.IdentityProviderMapperModel mapperModel, org.keycloak.broker.provider.BrokeredIdentityContext context)
     
    void
    updateBrokeredUserLegacy(org.keycloak.models.KeycloakSession session, org.keycloak.models.RealmModel realm, org.keycloak.models.UserModel user, org.keycloak.models.IdentityProviderMapperModel mapperModel, org.keycloak.broker.provider.BrokeredIdentityContext context)
     

    Methods inherited from class org.keycloak.broker.provider.AbstractIdentityProviderMapper

    close, create, dependsOn, importNewUser, init, postInit

    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

    Methods inherited from interface org.keycloak.broker.provider.IdentityProviderMapper

    getCompatibleProviders

    Methods inherited from interface org.keycloak.provider.ProviderFactory

    getConfigMetadata, getId, order
  • Field Details

    • logger

      protected static final org.jboss.logging.Logger logger
    • LOGGER_DUMP_USER_PROFILE

      protected static final org.jboss.logging.Logger LOGGER_DUMP_USER_PROFILE
    • CONF_JSON_FIELD

      public static final String CONF_JSON_FIELD
      Config param where name of mapping source JSON User Profile field is stored.
      See Also:
    • CONF_USER_ATTRIBUTE

      public static final String CONF_USER_ATTRIBUTE
      Config param where name of mapping target USer attribute is stored.
      See Also:
    • CONTEXT_JSON_NODE

      public static final String CONTEXT_JSON_NODE
      Key in BrokeredIdentityContext.getContextData() where JsonNode with user profile is stored.
      See Also:
  • Constructor Details

    • AbstractJsonUserAttributeMapper

      public AbstractJsonUserAttributeMapper()
  • Method Details

    • storeUserProfileForMapper

      public static void storeUserProfileForMapper(org.keycloak.broker.provider.BrokeredIdentityContext user, com.fasterxml.jackson.databind.JsonNode profile, String provider)
      Store used profile JsonNode into user context for later use by this mapper. Profile data are dumped into special logger if enabled also to allow investigation of the structure.
      Parameters:
      user - context to store profile data into
      profile - to store into context
      provider - identification of social provider to be used in log dump
      See Also:
    • supportsSyncMode

      public boolean supportsSyncMode(org.keycloak.models.IdentityProviderSyncMode syncMode)
    • getConfigProperties

      public List<org.keycloak.provider.ProviderConfigProperty> getConfigProperties()
    • getDisplayCategory

      public String getDisplayCategory()
    • getDisplayType

      public String getDisplayType()
    • getHelpText

      public String getHelpText()
    • preprocessFederatedIdentity

      public void preprocessFederatedIdentity(org.keycloak.models.KeycloakSession session, org.keycloak.models.RealmModel realm, org.keycloak.models.IdentityProviderMapperModel mapperModel, org.keycloak.broker.provider.BrokeredIdentityContext context)
      Specified by:
      preprocessFederatedIdentity in interface org.keycloak.broker.provider.IdentityProviderMapper
      Overrides:
      preprocessFederatedIdentity in class org.keycloak.broker.provider.AbstractIdentityProviderMapper
    • updateBrokeredUserLegacy

      public void updateBrokeredUserLegacy(org.keycloak.models.KeycloakSession session, org.keycloak.models.RealmModel realm, org.keycloak.models.UserModel user, org.keycloak.models.IdentityProviderMapperModel mapperModel, org.keycloak.broker.provider.BrokeredIdentityContext context)
      Specified by:
      updateBrokeredUserLegacy in interface org.keycloak.broker.provider.IdentityProviderMapper
      Overrides:
      updateBrokeredUserLegacy in class org.keycloak.broker.provider.AbstractIdentityProviderMapper
    • updateBrokeredUser

      public void updateBrokeredUser(org.keycloak.models.KeycloakSession session, org.keycloak.models.RealmModel realm, org.keycloak.models.UserModel user, org.keycloak.models.IdentityProviderMapperModel mapperModel, org.keycloak.broker.provider.BrokeredIdentityContext context)
      Specified by:
      updateBrokeredUser in interface org.keycloak.broker.provider.IdentityProviderMapper
      Overrides:
      updateBrokeredUser in class org.keycloak.broker.provider.AbstractIdentityProviderMapper
    • getJsonValue

      protected static Object getJsonValue(org.keycloak.models.IdentityProviderMapperModel mapperModel, org.keycloak.broker.provider.BrokeredIdentityContext context)
    • getJsonValue

      public static Object getJsonValue(com.fasterxml.jackson.databind.JsonNode baseNode, String fieldPath)