in saml-authentication-server/src/main/java/jetbrains/buildServer/auth/saml/plugin/SamlSettingsJsonController.java [122:139]
public static void validateAttributeMapping(SamlAttributeMappingSettings mapping, String attributeName, List<JsonActionError> errors) {
if (mapping.getMappingType().equals(SamlAttributeMappingSettings.TYPE_OTHER)) {
if (StringUtil.isEmpty(mapping.getCustomAttributeName())) {
errors.add(new JsonActionError(String.format("You must specify non-empty attribute name for the %s attribute mapping", attributeName)));
}
} else if (mapping.getMappingType().equals(SamlAttributeMappingSettings.TYPE_EXPRESSION)) {
if (StringUtil.isEmpty(mapping.getCustomAttributeName())) {
errors.add(new JsonActionError(String.format("You must specify non-empty expression for the %s attribute mapping", attributeName)));
} else {
String expression = mapping.getCustomAttributeName();
var expressionExecutor = new SpelExpressionExecutor();
var errorMessage = expressionExecutor.validate(expression);
if (errorMessage != null) {
errors.add(new JsonActionError(String.format("Syntax error in expression %s :%s", expression, errorMessage)));
}
}
}
}