Package org.keycloak.broker.oidc.mappers
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 usesJsonNode
user profile.- Author:
- Vlastimil Elias (velias at redhat dot com)
-
-
Field Summary
Fields Modifier and Type Field Description static String
CONF_JSON_FIELD
Config param where name of mapping source JSON User Profile field is stored.static String
CONF_USER_ATTRIBUTE
Config param where name of mapping target USer attribute is stored.static String
CONTEXT_JSON_NODE
Key inBrokeredIdentityContext.getContextData()
whereJsonNode
with user profile is stored.protected static org.jboss.logging.Logger
logger
protected static org.jboss.logging.Logger
LOGGER_DUMP_USER_PROFILE
-
Constructor Summary
Constructors Constructor Description AbstractJsonUserAttributeMapper()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description List<org.keycloak.provider.ProviderConfigProperty>
getConfigProperties()
String
getDisplayCategory()
String
getDisplayType()
String
getHelpText()
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, importNewUser, init, postInit
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
-
-
-
Field Detail
-
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:
- Constant Field Values
-
CONF_USER_ATTRIBUTE
public static final String CONF_USER_ATTRIBUTE
Config param where name of mapping target USer attribute is stored.- See Also:
- Constant Field Values
-
CONTEXT_JSON_NODE
public static final String CONTEXT_JSON_NODE
Key inBrokeredIdentityContext.getContextData()
whereJsonNode
with user profile is stored.- See Also:
- Constant Field Values
-
-
Method Detail
-
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 intoprofile
- to store into contextprovider
- identification of social provider to be used in log dump- See Also:
preprocessFederatedIdentity(KeycloakSession, RealmModel, IdentityProviderMapperModel, BrokeredIdentityContext)
,BrokeredIdentityContext.getContextData()
-
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 interfaceorg.keycloak.broker.provider.IdentityProviderMapper
- Overrides:
preprocessFederatedIdentity
in classorg.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 interfaceorg.keycloak.broker.provider.IdentityProviderMapper
- Overrides:
updateBrokeredUserLegacy
in classorg.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 interfaceorg.keycloak.broker.provider.IdentityProviderMapper
- Overrides:
updateBrokeredUser
in classorg.keycloak.broker.provider.AbstractIdentityProviderMapper
-
getJsonValue
protected static Object getJsonValue(org.keycloak.models.IdentityProviderMapperModel mapperModel, org.keycloak.broker.provider.BrokeredIdentityContext context)
-
-