in saml-authentication-server/src/main/java/jetbrains/buildServer/auth/saml/plugin/SamlSettingsJsonController.java [83:120]
public JsonActionResult<SamlPluginSettings> saveSettings(HttpServletRequest request) {
if (!permissionsManager.canWriteSettings(request)) {
return JsonActionResult.forbidden();
}
try {
var settings = bindFromRequest(request, SamlPluginSettings.class);
var validator = Validation.buildDefaultValidatorFactory().getValidator();
var constraintViolations = validator.validate(settings);
var errors = constraintViolations.stream().map(cv -> new JsonActionError(cv.getMessage())).collect(Collectors.toList());
if (settings.isCreateUsersAutomatically() && settings.isLimitToPostfixes() && StringUtil.isEmpty(settings.getAllowedPostfixes())) {
errors.add(new JsonActionError("You must specify allowed postfixes"));
}
if (settings.isCreateUsersAutomatically()) {
validateAttributeMapping(settings.getNameAttributeMapping(), "name", errors);
validateAttributeMapping(settings.getEmailAttributeMapping(), "email", errors);
}
if (settings.isAssignGroups()) {
validateAttributeMapping(settings.getGroupsAttributeMapping(), "groups", errors);
}
if (errors.size() > 0) {
return JsonActionResult.fail(errors);
}
settingsStorage.save(settings);
return JsonActionResult.ok(settings);
} catch (Exception e) {
return JsonActionResult.fail(e);
}
}