keycloak
公開メンバ関数 | 静的公開メンバ関数 | 静的公開変数類 | 限定公開メンバ関数 | 静的関数 | 静的変数 | 静的非公開変数類 | 全メンバ一覧
org.keycloak.broker.oidc.mappers.UsernameTemplateMapper クラス
org.keycloak.broker.oidc.mappers.UsernameTemplateMapper の継承関係図
Inheritance graph
org.keycloak.broker.oidc.mappers.UsernameTemplateMapper 連携図
Collaboration graph

公開メンバ関数

List< ProviderConfigPropertygetConfigProperties ()
 
String getId ()
 
String [] getCompatibleProviders ()
 
String getDisplayCategory ()
 
String getDisplayType ()
 
void updateBrokeredUser (KeycloakSession session, RealmModel realm, UserModel user, IdentityProviderMapperModel mapperModel, BrokeredIdentityContext context)
 
void preprocessFederatedIdentity (KeycloakSession session, RealmModel realm, IdentityProviderMapperModel mapperModel, BrokeredIdentityContext context)
 
String getHelpText ()
 
boolean valueEquals (String desiredValue, Object value)
 
void close ()
 
IdentityProviderMapper create (KeycloakSession session)
 
void init (org.keycloak.Config.Scope config)
 
void init (Config.Scope config)
 
void postInit (KeycloakSessionFactory factory)
 
void importNewUser (KeycloakSession session, RealmModel realm, UserModel user, IdentityProviderMapperModel mapperModel, BrokeredIdentityContext context)
 
default int order ()
 

静的公開メンバ関数

static Object getClaimValue (JsonWebToken token, String claim)
 
static Object getClaimValue (IdentityProviderMapperModel mapperModel, BrokeredIdentityContext context)
 
static Object getClaimValue (BrokeredIdentityContext context, String claim)
 

静的公開変数類

static final String [] COMPATIBLE_PROVIDERS = {KeycloakOIDCIdentityProviderFactory.PROVIDER_ID, OIDCIdentityProviderFactory.PROVIDER_ID}
 
static final String TEMPLATE = "template"
 
static final String PROVIDER_ID = "oidc-username-idp-mapper"
 
static final String CLAIM = "claim"
 
static final String CLAIM_VALUE = "claim.value"
 
static final String ANY_PROVIDER = "*"
 

限定公開メンバ関数

boolean hasClaimValue (IdentityProviderMapperModel mapperModel, BrokeredIdentityContext context)
 

静的関数

 [static initializer]
 

静的変数

static Pattern substitution = Pattern.compile("\\$\\{([^}]+)\\}")
 

静的非公開変数類

static final List< ProviderConfigPropertyconfigProperties = new ArrayList<ProviderConfigProperty>()
 

詳解

著者
Bill Burke
バージョン
Revision
1

関数詳解

◆ [static initializer]()

org.keycloak.broker.oidc.mappers.UsernameTemplateMapper.[static initializer] ( )
inlinestaticpackage

◆ close()

void org.keycloak.broker.provider.AbstractIdentityProviderMapper.close ( )
inlineinherited

org.keycloak.provider.Providerを実装しています。

32  {
33 
34  }

◆ create()

IdentityProviderMapper org.keycloak.broker.provider.AbstractIdentityProviderMapper.create ( KeycloakSession  session)
inlineinherited

org.keycloak.provider.ProviderFactory< T extends Provider >を実装しています。

37  {
38  return null;
39  }

◆ getClaimValue() [1/3]

static Object org.keycloak.broker.oidc.mappers.AbstractClaimMapper.getClaimValue ( JsonWebToken  token,
String  claim 
)
inlinestaticinherited
43  {
44  List<String> split = OIDCAttributeMapperHelper.splitClaimPath(claim);
45  Map<String, Object> jsonObject = token.getOtherClaims();
46  final int length = split.size();
47  int i = 0;
48  for (String component : split) {
49  i++;
50  if (i == length) {
51  return jsonObject.get(component);
52  } else {
53  Object val = jsonObject.get(component);
54  if (!(val instanceof Map)) return null;
55  jsonObject = (Map<String, Object>)val;
56  }
57  }
58  return null;
59  }

◆ getClaimValue() [2/3]

static Object org.keycloak.broker.oidc.mappers.AbstractClaimMapper.getClaimValue ( IdentityProviderMapperModel  mapperModel,
BrokeredIdentityContext  context 
)
inlinestaticinherited
61  {
62  String claim = mapperModel.getConfig().get(CLAIM);
63  return getClaimValue(context, claim);
64  }
static final String CLAIM
Definition: AbstractClaimMapper.java:40
static Object getClaimValue(JsonWebToken token, String claim)
Definition: AbstractClaimMapper.java:43

◆ getClaimValue() [3/3]

static Object org.keycloak.broker.oidc.mappers.AbstractClaimMapper.getClaimValue ( BrokeredIdentityContext  context,
String  claim 
)
inlinestaticinherited
66  {
67  { // search access token
68  JsonWebToken token = (JsonWebToken)context.getContextData().get(KeycloakOIDCIdentityProvider.VALIDATED_ACCESS_TOKEN);
69  if (token != null) {
70  Object value = getClaimValue(token, claim);
71  if (value != null) return value;
72  }
73 
74  }
75  { // search ID Token
76  JsonWebToken token = (JsonWebToken)context.getContextData().get(KeycloakOIDCIdentityProvider.VALIDATED_ID_TOKEN);
77  if (token != null) {
78  Object value = getClaimValue(token, claim);
79  if (value != null) return value;
80  }
81 
82  }
83  {
84  // Search the OIDC UserInfo claim set (if any)
85  JsonNode profileJsonNode = (JsonNode) context.getContextData().get(OIDCIdentityProvider.USER_INFO);
86  Object value = AbstractJsonUserAttributeMapper.getJsonValue(profileJsonNode, claim);
87  if (value != null) return value;
88  }
89  return null;
90  }
static Object getClaimValue(JsonWebToken token, String claim)
Definition: AbstractClaimMapper.java:43

◆ getCompatibleProviders()

String [] org.keycloak.broker.oidc.mappers.UsernameTemplateMapper.getCompatibleProviders ( )
inline

org.keycloak.broker.provider.IdentityProviderMapperを実装しています。

71  {
72  return COMPATIBLE_PROVIDERS;
73  }
static final String [] COMPATIBLE_PROVIDERS
Definition: UsernameTemplateMapper.java:41

◆ getConfigProperties()

List<ProviderConfigProperty> org.keycloak.broker.oidc.mappers.UsernameTemplateMapper.getConfigProperties ( )
inline

org.keycloak.provider.ConfiguredProviderを実装しています。

61  {
62  return configProperties;
63  }
static final List< ProviderConfigProperty > configProperties
Definition: UsernameTemplateMapper.java:43

◆ getDisplayCategory()

String org.keycloak.broker.oidc.mappers.UsernameTemplateMapper.getDisplayCategory ( )
inline

org.keycloak.broker.provider.IdentityProviderMapperを実装しています。

76  {
77  return "Preprocessor";
78  }

◆ getDisplayType()

String org.keycloak.broker.oidc.mappers.UsernameTemplateMapper.getDisplayType ( )
inline

org.keycloak.broker.provider.IdentityProviderMapperを実装しています。

81  {
82  return "Username Template Importer";
83  }

◆ getHelpText()

String org.keycloak.broker.oidc.mappers.UsernameTemplateMapper.getHelpText ( )
inline

org.keycloak.provider.ConfiguredProviderを実装しています。

119  {
120  return "Format the username to import.";
121  }

◆ getId()

String org.keycloak.broker.oidc.mappers.UsernameTemplateMapper.getId ( )
inline

org.keycloak.provider.ProviderFactory< T extends Provider >を実装しています。

66  {
67  return PROVIDER_ID;
68  }
static final String PROVIDER_ID
Definition: UsernameTemplateMapper.java:58

◆ hasClaimValue()

boolean org.keycloak.broker.oidc.mappers.AbstractClaimMapper.hasClaimValue ( IdentityProviderMapperModel  mapperModel,
BrokeredIdentityContext  context 
)
inlineprotectedinherited
93  {
94  Object value = getClaimValue(mapperModel, context);
95  String desiredValue = mapperModel.getConfig().get(CLAIM_VALUE);
96  return valueEquals(desiredValue, value);
97  }
static final String CLAIM_VALUE
Definition: AbstractClaimMapper.java:41
boolean valueEquals(String desiredValue, Object value)
Definition: AbstractClaimMapper.java:99
static Object getClaimValue(JsonWebToken token, String claim)
Definition: AbstractClaimMapper.java:43

◆ importNewUser()

void org.keycloak.broker.provider.AbstractIdentityProviderMapper.importNewUser ( KeycloakSession  session,
RealmModel  realm,
UserModel  user,
IdentityProviderMapperModel  mapperModel,
BrokeredIdentityContext  context 
)
inlineinherited

org.keycloak.broker.provider.IdentityProviderMapperを実装しています。

57  {
58 
59  }

◆ init() [1/2]

void org.keycloak.provider.ProviderFactory< T extends Provider >.init ( Config.Scope  config)
inherited

Only called once when the factory is first created. This config is pulled from keycloak_server.json

引数
config

org.keycloak.storage.ldap.LDAPStorageProviderFactory, org.keycloak.protocol.saml.EntityDescriptorDescriptionConverter, org.keycloak.authentication.authenticators.x509.AbstractX509ClientCertificateAuthenticatorFactory, org.keycloak.authentication.forms.RegistrationUserCreation, org.keycloak.authentication.authenticators.resetcred.ResetCredentialEmail, org.keycloak.authentication.forms.RegistrationRecaptcha, org.keycloak.authentication.authenticators.resetcred.ResetCredentialChooseUser, org.keycloak.authentication.forms.RegistrationProfile, org.keycloak.authentication.forms.RegistrationPassword, org.keycloak.cluster.infinispan.InfinispanClusterProviderFactory, org.keycloak.protocol.saml.installation.KeycloakSamlClientInstallation, org.keycloak.protocol.saml.installation.SamlIDPDescriptorClientInstallation, org.keycloak.authentication.requiredactions.UpdateProfile, org.keycloak.authentication.requiredactions.UpdatePassword, org.keycloak.protocol.oidc.installation.KeycloakOIDCClientInstallation, org.keycloak.protocol.saml.mappers.RoleNameMapper, org.keycloak.connections.httpclient.DefaultHttpClientFactory, org.keycloak.protocol.saml.installation.ModAuthMellonClientInstallation, org.keycloak.federation.kerberos.KerberosFederationProviderFactory, org.keycloak.authentication.requiredactions.VerifyEmail, org.keycloak.authentication.requiredactions.UpdateTotp, org.keycloak.connections.jpa.updater.liquibase.conn.DefaultLiquibaseConnectionProvider, org.keycloak.protocol.oidc.installation.KeycloakOIDCJbossSubsystemClientInstallation, org.keycloak.connections.jpa.DefaultJpaConnectionProviderFactory, org.keycloak.protocol.saml.installation.SamlSPDescriptorClientInstallation, org.keycloak.policy.BlacklistPasswordPolicyProviderFactory, org.keycloak.authentication.forms.RegistrationPage, org.keycloak.protocol.saml.profile.ecp.authenticator.HttpBasicAuthenticatorFactory, org.keycloak.authentication.authenticators.browser.IdentityProviderAuthenticatorFactory, org.keycloak.authentication.authenticators.resetcred.AbstractSetRequiredActionAuthenticator, org.keycloak.connections.infinispan.DefaultInfinispanConnectionProviderFactory, org.keycloak.protocol.saml.installation.KeycloakSamlSubsystemInstallation, org.keycloak.keys.infinispan.InfinispanPublicKeyStorageProviderFactory, org.keycloak.theme.ClasspathThemeProviderFactory, org.keycloak.models.cache.infinispan.InfinispanUserCacheProviderFactory, org.keycloak.models.cache.infinispan.InfinispanCacheRealmProviderFactory, org.keycloak.executors.DefaultExecutorsProviderFactory, org.keycloak.authentication.authenticators.browser.ScriptBasedAuthenticatorFactory, org.keycloak.protocol.saml.SamlProtocolFactory, org.keycloak.authentication.authenticators.browser.ConditionalOtpFormAuthenticatorFactory, org.keycloak.protocol.docker.DockerAuthenticatorFactory, org.keycloak.storage.UserStorageProviderFactory< T extends UserStorageProvider >, org.keycloak.storage.client.ClientStorageProviderFactory< T extends ClientStorageProvider >, org.keycloak.authentication.authenticators.directgrant.AbstractDirectGrantAuthenticator, org.keycloak.authentication.authenticators.browser.OTPFormAuthenticatorFactory, org.keycloak.authentication.authenticators.browser.UsernamePasswordFormFactory, org.keycloak.exportimport.KeycloakClientDescriptionConverter, org.keycloak.authentication.authenticators.browser.SpnegoAuthenticatorFactory, org.keycloak.protocol.oidc.mappers.AbstractOIDCProtocolMapper, org.keycloak.authentication.authenticators.browser.CookieAuthenticatorFactory, org.keycloak.authentication.requiredactions.TermsAndConditions, org.keycloak.events.email.EmailEventListenerProviderFactory, org.keycloak.authentication.authenticators.broker.IdpReviewProfileAuthenticatorFactory, org.keycloak.protocol.saml.mappers.AbstractSAMLProtocolMapper, org.keycloak.models.session.DisabledUserSessionPersisterProvider, org.keycloak.services.x509.DefaultClientCertificateLookupFactory, org.keycloak.authentication.authenticators.broker.IdpCreateUserIfUniqueAuthenticatorFactory, org.keycloak.authentication.authenticators.cli.CliUsernamePasswordAuthenticatorFactory, org.keycloak.authentication.authenticators.client.AbstractClientAuthenticator, org.keycloak.theme.JarThemeProviderFactory, org.keycloak.authentication.authenticators.challenge.BasicAuthAuthenticatorFactory, org.keycloak.authentication.authenticators.challenge.BasicAuthOTPAuthenticatorFactory, org.keycloak.authentication.authenticators.challenge.NoCookieFlowRedirectAuthenticatorFactory, org.keycloak.connections.jpa.updater.liquibase.lock.LiquibaseDBLockProviderFactory, org.keycloak.models.sessions.infinispan.InfinispanActionTokenStoreProviderFactory, org.keycloak.timer.basic.BasicTimerProviderFactory, org.keycloak.truststore.FileTruststoreProviderFactory, org.keycloak.authentication.authenticators.console.ConsoleUsernamePasswordAuthenticatorFactory, org.keycloak.events.log.JBossLoggingEventListenerProviderFactory, org.keycloak.protocol.oidc.OIDCClientDescriptionConverterFactory, org.keycloak.authentication.authenticators.broker.IdpConfirmLinkAuthenticatorFactory, org.keycloak.authentication.authenticators.broker.IdpEmailVerificationAuthenticatorFactory, org.keycloak.exportimport.singlefile.SingleFileImportProviderFactory, org.keycloak.services.x509.AbstractClientCertificateFromHttpHeadersLookupFactory, org.keycloak.theme.ClasspathThemeResourceProviderFactory, org.keycloak.exportimport.dir.DirExportProviderFactory, org.keycloak.exportimport.singlefile.SingleFileExportProviderFactory, org.keycloak.policy.HashAlgorithmPasswordPolicyProviderFactory, org.keycloak.policy.HistoryPasswordPolicyProviderFactory, org.keycloak.protocol.docker.mapper.DockerAuthV2ProtocolMapper, org.keycloak.authentication.authenticators.broker.IdpAutoLinkAuthenticatorFactory, org.keycloak.models.jpa.session.JpaUserSessionPersisterProviderFactory, org.keycloak.policy.DigitsPasswordPolicyProviderFactory, org.keycloak.policy.LengthPasswordPolicyProviderFactory, org.keycloak.policy.NotUsernamePasswordPolicyProviderFactory, org.keycloak.policy.RegexPatternsPasswordPolicyProviderFactory, org.keycloak.scripting.DefaultScriptingProviderFactory, org.keycloak.credential.hash.Pbkdf2PasswordHashProviderFactory, org.keycloak.events.jpa.JpaEventStoreProviderFactory, org.keycloak.exportimport.dir.DirImportProviderFactory, org.keycloak.transaction.JBossJtaTransactionManagerLookup, org.keycloak.email.freemarker.FreeMarkerEmailTemplateProviderFactory, org.keycloak.forms.account.freemarker.FreeMarkerAccountProviderFactory, org.keycloak.forms.login.freemarker.FreeMarkerLoginFormsProviderFactory, org.keycloak.policy.ForceExpiredPasswordPolicyProviderFactory, org.keycloak.storage.jpa.JpaUserFederatedStorageProviderFactory, org.keycloak.keys.KeyProviderFactory< T extends KeyProvider >, org.keycloak.policy.HashIterationsPasswordPolicyProviderFactory, org.keycloak.protocol.oidc.OIDCWellKnownProviderFactory, org.keycloak.protocol.saml.clientregistration.EntityDescriptorClientRegistrationProviderFactory, org.keycloak.services.clientregistration.oidc.OIDCClientRegistrationProviderFactory, org.keycloak.theme.ExtendingThemeManagerFactory, org.keycloak.theme.FolderThemeProviderFactory, org.keycloak.credential.CredentialProviderFactory< T extends CredentialProvider >, org.keycloak.services.clientregistration.policy.AbstractClientRegistrationPolicyFactory, org.keycloak.connections.jpa.updater.liquibase.LiquibaseJpaUpdaterProviderFactory, org.keycloak.policy.LowerCasePasswordPolicyProviderFactory, org.keycloak.policy.SpecialCharsPasswordPolicyProviderFactory, org.keycloak.policy.UpperCasePasswordPolicyProviderFactory, org.keycloak.protocol.oidc.AccessTokenIntrospectionProviderFactory, org.keycloak.provider.wildfly.ModuleThemeProviderFactory, org.keycloak.services.managers.DefaultBruteForceProtectorFactory, org.keycloak.services.migration.DefaultMigrationProviderFactory, org.keycloak.models.jpa.JpaRealmProviderFactory, org.keycloak.models.jpa.JpaUserCredentialStoreFactory, org.keycloak.models.jpa.JpaUserProviderFactory, org.keycloak.protocol.docker.installation.DockerComposeYamlInstallationProvider, org.keycloak.email.DefaultEmailSenderProviderFactory, org.keycloak.policy.DefaultPasswordPolicyManagerProviderFactory, org.keycloak.protocol.AbstractLoginProtocolFactory, org.keycloak.services.clientregistration.AdapterInstallationClientRegistrationProviderFactory, org.keycloak.services.clientregistration.DefaultClientRegistrationProviderFactory, org.keycloak.locale.DefaultLocaleSelectorProviderFactory, org.keycloak.urls.HostnameProviderFactory, org.keycloak.credential.hash.Pbkdf2Sha256PasswordHashProviderFactory, org.keycloak.credential.hash.Pbkdf2Sha512PasswordHashProviderFactory, org.keycloak.crypto.SignatureProviderFactory, org.keycloak.protocol.docker.installation.DockerRegistryConfigFileInstallationProvider, org.keycloak.protocol.docker.installation.DockerVariableOverrideInstallationProvider, org.keycloak.url.FixedHostnameProviderFactory, org.keycloak.theme.DefaultThemeSelectorProviderFactory, org.keycloak.protocol.oidc.ext.OIDCExtProviderFactory (計132項目)で実装されています。

◆ init() [2/2]

void org.keycloak.broker.provider.AbstractIdentityProviderMapper.init ( org.keycloak.Config.Scope  config)
inlineinherited
42  {
43 
44  }

◆ order()

default int org.keycloak.provider.ProviderFactory< T extends Provider >.order ( )
inlineinherited

◆ postInit()

void org.keycloak.broker.provider.AbstractIdentityProviderMapper.postInit ( KeycloakSessionFactory  factory)
inlineinherited

org.keycloak.provider.ProviderFactory< T extends Provider >を実装しています。

47  {
48 
49  }

◆ preprocessFederatedIdentity()

void org.keycloak.broker.oidc.mappers.UsernameTemplateMapper.preprocessFederatedIdentity ( KeycloakSession  session,
RealmModel  realm,
IdentityProviderMapperModel  mapperModel,
BrokeredIdentityContext  context 
)
inline

org.keycloak.broker.provider.IdentityProviderMapperを実装しています。

92  {
93  String template = mapperModel.getConfig().get(TEMPLATE);
94  Matcher m = substitution.matcher(template);
95  StringBuffer sb = new StringBuffer();
96  while (m.find()) {
97  String variable = m.group(1);
98  if (variable.equals("ALIAS")) {
99  m.appendReplacement(sb, context.getIdpConfig().getAlias());
100  } else if (variable.equals("UUID")) {
101  m.appendReplacement(sb, KeycloakModelUtils.generateId());
102  } else if (variable.startsWith("CLAIM.")) {
103  String name = variable.substring("CLAIM.".length());
104  Object value = AbstractClaimMapper.getClaimValue(context, name);
105  if (value == null) value = "";
106  m.appendReplacement(sb, value.toString());
107  } else {
108  m.appendReplacement(sb, m.group(1));
109  }
110 
111  }
112  m.appendTail(sb);
113  String username = sb.toString();
114  context.setModelUsername(username);
115 
116  }
static Pattern substitution
Definition: UsernameTemplateMapper.java:89
static final String TEMPLATE
Definition: UsernameTemplateMapper.java:45

◆ updateBrokeredUser()

void org.keycloak.broker.oidc.mappers.UsernameTemplateMapper.updateBrokeredUser ( KeycloakSession  session,
RealmModel  realm,
UserModel  user,
IdentityProviderMapperModel  mapperModel,
BrokeredIdentityContext  context 
)
inline

org.keycloak.broker.provider.IdentityProviderMapperを実装しています。

86  {
87  }

◆ valueEquals()

boolean org.keycloak.broker.oidc.mappers.AbstractClaimMapper.valueEquals ( String  desiredValue,
Object  value 
)
inlineinherited
99  {
100  if (value instanceof String) {
101  if (desiredValue.equals(value)) return true;
102  } else if (value instanceof Double) {
103  try {
104  if (Double.valueOf(desiredValue).equals(value)) return true;
105  } catch (Exception e) {
106 
107  }
108  } else if (value instanceof Integer) {
109  try {
110  if (Integer.valueOf(desiredValue).equals(value)) return true;
111  } catch (Exception e) {
112 
113  }
114  } else if (value instanceof Boolean) {
115  try {
116  if (Boolean.valueOf(desiredValue).equals(value)) return true;
117  } catch (Exception e) {
118 
119  }
120  } else if (value instanceof List) {
121  List list = (List)value;
122  for (Object val : list) {
123  if (valueEquals(desiredValue, val)) return true;
124  }
125  }
126  return false;
127  }
boolean valueEquals(String desiredValue, Object value)
Definition: AbstractClaimMapper.java:99

メンバ詳解

◆ ANY_PROVIDER

final String org.keycloak.broker.provider.IdentityProviderMapper.ANY_PROVIDER = "*"
staticinherited

◆ CLAIM

final String org.keycloak.broker.oidc.mappers.AbstractClaimMapper.CLAIM = "claim"
staticinherited

◆ CLAIM_VALUE

final String org.keycloak.broker.oidc.mappers.AbstractClaimMapper.CLAIM_VALUE = "claim.value"
staticinherited

◆ COMPATIBLE_PROVIDERS

final String [] org.keycloak.broker.oidc.mappers.UsernameTemplateMapper.COMPATIBLE_PROVIDERS = {KeycloakOIDCIdentityProviderFactory.PROVIDER_ID, OIDCIdentityProviderFactory.PROVIDER_ID}
static

◆ configProperties

final List<ProviderConfigProperty> org.keycloak.broker.oidc.mappers.UsernameTemplateMapper.configProperties = new ArrayList<ProviderConfigProperty>()
staticprivate

◆ PROVIDER_ID

final String org.keycloak.broker.oidc.mappers.UsernameTemplateMapper.PROVIDER_ID = "oidc-username-idp-mapper"
static

◆ substitution

Pattern org.keycloak.broker.oidc.mappers.UsernameTemplateMapper.substitution = Pattern.compile("\\$\\{([^}]+)\\}")
staticpackage

◆ TEMPLATE

final String org.keycloak.broker.oidc.mappers.UsernameTemplateMapper.TEMPLATE = "template"
static

このクラス詳解は次のファイルから抽出されました: