99 AssertionType assertion = (AssertionType)context.getContextData().get(SAMLEndpoint.SAML_ASSERTION);
100 String
template = mapperModel.getConfig().get(
TEMPLATE);
102 StringBuffer sb =
new StringBuffer();
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());
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();
129 m.appendReplacement(sb, value);
131 m.appendReplacement(sb, m.group(1));
136 context.setModelUsername(sb.toString());
static final String TEMPLATE
Definition: UsernameTemplateMapper.java:51
static Pattern substitution
Definition: UsernameTemplateMapper.java:95