public JsonActionResult saveSettings()

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);
        }
    }