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

公開メンバ関数

List< ProviderConfigProperty > getConfigProperties ()
 
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 ()
 

静的公開変数類

static final String [] COMPATIBLE_PROVIDERS = {SAMLIdentityProviderFactory.PROVIDER_ID}
 
static final String TEMPLATE = "template"
 
static final String PROVIDER_ID = "saml-username-idp-mapper"
 

静的関数

 [static initializer]
 

静的変数

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

静的非公開変数類

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

詳解

著者
Bill Burke
バージョン
Revision
1

関数詳解

◆ [static initializer]()

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

◆ getCompatibleProviders()

String [] org.keycloak.broker.saml.mappers.UsernameTemplateMapper.getCompatibleProviders ( )
inline
77  {
78  return COMPATIBLE_PROVIDERS;
79  }
static final String [] COMPATIBLE_PROVIDERS
Definition: UsernameTemplateMapper.java:47

◆ getConfigProperties()

List<ProviderConfigProperty> org.keycloak.broker.saml.mappers.UsernameTemplateMapper.getConfigProperties ( )
inline
67  {
68  return configProperties;
69  }
static final List< ProviderConfigProperty > configProperties
Definition: UsernameTemplateMapper.java:49

◆ getDisplayCategory()

String org.keycloak.broker.saml.mappers.UsernameTemplateMapper.getDisplayCategory ( )
inline
82  {
83  return "Preprocessor";
84  }

◆ getDisplayType()

String org.keycloak.broker.saml.mappers.UsernameTemplateMapper.getDisplayType ( )
inline
87  {
88  return "Username Template Importer";
89  }

◆ getHelpText()

String org.keycloak.broker.saml.mappers.UsernameTemplateMapper.getHelpText ( )
inline
141  {
142  return "Format the username to import.";
143  }

◆ getId()

String org.keycloak.broker.saml.mappers.UsernameTemplateMapper.getId ( )
inline
72  {
73  return PROVIDER_ID;
74  }
static final String PROVIDER_ID
Definition: UsernameTemplateMapper.java:64

◆ preprocessFederatedIdentity()

void org.keycloak.broker.saml.mappers.UsernameTemplateMapper.preprocessFederatedIdentity ( KeycloakSession  session,
RealmModel  realm,
IdentityProviderMapperModel  mapperModel,
BrokeredIdentityContext  context 
)
inline
98  {
99  AssertionType assertion = (AssertionType)context.getContextData().get(SAMLEndpoint.SAML_ASSERTION);
100  String template = mapperModel.getConfig().get(TEMPLATE);
101  Matcher m = substitution.matcher(template);
102  StringBuffer sb = new StringBuffer();
103  while (m.find()) {
104  String variable = m.group(1);
105  if (variable.equals("ALIAS")) {
106  m.appendReplacement(sb, context.getIdpConfig().getAlias());
107  } else if (variable.equals("UUID")) {
108  m.appendReplacement(sb, KeycloakModelUtils.generateId());
109  } else if (variable.equals("NAMEID")) {
110  SubjectType subject = assertion.getSubject();
111  SubjectType.STSubType subType = subject.getSubType();
112  NameIDType subjectNameID = (NameIDType) subType.getBaseID();
113  m.appendReplacement(sb, subjectNameID.getValue());
114  } else if (variable.startsWith("ATTRIBUTE.")) {
115  String name = variable.substring("ATTRIBUTE.".length());
116  String value = "";
117  for (AttributeStatementType statement : assertion.getAttributeStatements()) {
118  for (AttributeStatementType.ASTChoiceType choice : statement.getAttributes()) {
119  AttributeType attr = choice.getAttribute();
120  if (name.equals(attr.getName()) || name.equals(attr.getFriendlyName())) {
121  List<Object> attributeValue = attr.getAttributeValue();
122  if (attributeValue != null && !attributeValue.isEmpty()) {
123  value = attributeValue.get(0).toString();
124  }
125  break;
126  }
127  }
128  }
129  m.appendReplacement(sb, value);
130  } else {
131  m.appendReplacement(sb, m.group(1));
132  }
133 
134  }
135  m.appendTail(sb);
136  context.setModelUsername(sb.toString());
137 
138  }
static final String TEMPLATE
Definition: UsernameTemplateMapper.java:51
static Pattern substitution
Definition: UsernameTemplateMapper.java:95

◆ updateBrokeredUser()

void org.keycloak.broker.saml.mappers.UsernameTemplateMapper.updateBrokeredUser ( KeycloakSession  session,
RealmModel  realm,
UserModel  user,
IdentityProviderMapperModel  mapperModel,
BrokeredIdentityContext  context 
)
inline
92  {
93 
94  }

メンバ詳解

◆ COMPATIBLE_PROVIDERS

final String [] org.keycloak.broker.saml.mappers.UsernameTemplateMapper.COMPATIBLE_PROVIDERS = {SAMLIdentityProviderFactory.PROVIDER_ID}
static

◆ configProperties

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

◆ PROVIDER_ID

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

◆ substitution

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

◆ TEMPLATE

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

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