diff --git a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/validation/SimpleValidators.java b/server-spi-private/src/main/java/org/keycloak/validate/BuiltinValidators.java similarity index 97% rename from testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/validation/SimpleValidators.java rename to server-spi-private/src/main/java/org/keycloak/validate/BuiltinValidators.java index 2175b21125..7b80aa1003 100644 --- a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/validation/SimpleValidators.java +++ b/server-spi-private/src/main/java/org/keycloak/validate/BuiltinValidators.java @@ -17,7 +17,7 @@ * */ -package org.keycloak.testsuite.validation; +package org.keycloak.validate; import org.keycloak.validate.validators.DoubleValidator; import org.keycloak.validate.validators.EmailValidator; @@ -34,7 +34,7 @@ import org.keycloak.validate.validators.ValidatorConfigValidator; /** * @author Marek Posolda */ -public class SimpleValidators { +public class BuiltinValidators { public static NotBlankValidator notBlankValidator() { return NotBlankValidator.INSTANCE; diff --git a/server-spi-private/src/main/resources/META-INF/services/org.keycloak.validate.ValidatorFactory b/server-spi-private/src/main/resources/META-INF/services/org.keycloak.validate.ValidatorFactory index 560a8b68b0..48378941f5 100644 --- a/server-spi-private/src/main/resources/META-INF/services/org.keycloak.validate.ValidatorFactory +++ b/server-spi-private/src/main/resources/META-INF/services/org.keycloak.validate.ValidatorFactory @@ -8,4 +8,3 @@ org.keycloak.validate.validators.DoubleValidator org.keycloak.validate.validators.IntegerValidator org.keycloak.validate.validators.LocalDateValidator org.keycloak.validate.validators.OptionsValidator -org.keycloak.validate.validators.ValidatorConfigValidator diff --git a/services/src/main/java/org/keycloak/userprofile/validator/ImmutableAttributeValidator.java b/services/src/main/java/org/keycloak/userprofile/validator/ImmutableAttributeValidator.java index 5fb4ec75e6..d76d5575eb 100644 --- a/services/src/main/java/org/keycloak/userprofile/validator/ImmutableAttributeValidator.java +++ b/services/src/main/java/org/keycloak/userprofile/validator/ImmutableAttributeValidator.java @@ -17,6 +17,7 @@ package org.keycloak.userprofile.validator; import static org.keycloak.common.util.CollectionUtil.collectionEquals; +import static org.keycloak.validate.BuiltinValidators.notBlankValidator; import java.util.List; import java.util.Objects; @@ -30,7 +31,6 @@ import org.keycloak.validate.SimpleValidator; import org.keycloak.validate.ValidationContext; import org.keycloak.validate.ValidationError; import org.keycloak.validate.ValidatorConfig; -import org.keycloak.validate.validators.NotBlankValidator; /** * A validator that fails when the attribute is marked as read only and its value has changed. @@ -62,7 +62,7 @@ public class ImmutableAttributeValidator implements SimpleValidator { List values = (List) input; if (!collectionEquals(currentValue, values) && isReadOnly(attributeContext)) { - if (currentValue.isEmpty() && !NotBlankValidator.INSTANCE.validate(values).isValid()) { + if (currentValue.isEmpty() && !notBlankValidator().validate(values).isValid()) { return context; } diff --git a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/validation/BuiltinValidatorsTest.java b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/validation/BuiltinValidatorsTest.java index 151d12349a..5834f8953c 100644 --- a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/validation/BuiltinValidatorsTest.java +++ b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/validation/BuiltinValidatorsTest.java @@ -33,7 +33,6 @@ import org.junit.Test; import org.keycloak.models.KeycloakSession; import org.keycloak.representations.idm.RealmRepresentation; import org.keycloak.testsuite.AbstractKeycloakTest; -import org.keycloak.testsuite.AbstractTestRealmKeycloakTest; import org.keycloak.testsuite.arquillian.annotation.ModelTest; import org.keycloak.validate.AbstractSimpleValidator; import org.keycloak.validate.ValidationContext; @@ -47,6 +46,7 @@ import org.keycloak.validate.validators.IntegerValidator; import org.keycloak.validate.validators.LengthValidator; import org.keycloak.validate.validators.OptionsValidator; import org.keycloak.validate.validators.PatternValidator; +import org.keycloak.validate.BuiltinValidators; import org.keycloak.validate.validators.UriValidator; import com.google.common.collect.ImmutableMap; @@ -62,7 +62,7 @@ public class BuiltinValidatorsTest extends AbstractKeycloakTest { @Test public void testLengthValidator() { - Validator validator = SimpleValidators.lengthValidator(); + Validator validator = BuiltinValidators.lengthValidator(); // null and empty values handling Assert.assertFalse(validator.validate(null, "name", configFromMap(ImmutableMap.of(LengthValidator.KEY_MIN, 1))).isValid()); @@ -124,7 +124,7 @@ public class BuiltinValidatorsTest extends AbstractKeycloakTest { // invalid min and max config values ValidatorConfig config = new ValidatorConfig(ImmutableMap.of(LengthValidator.KEY_MIN, new Object(), LengthValidator.KEY_MAX, "invalid")); - ValidationResult result = SimpleValidators.validatorConfigValidator().validate(config, LengthValidator.ID, new ValidationContext(session)).toResult(); + ValidationResult result = BuiltinValidators.validatorConfigValidator().validate(config, LengthValidator.ID, new ValidationContext(session)).toResult(); Assert.assertFalse(result.isValid()); ValidationError[] errors = result.getErrors().toArray(new ValidationError[0]); @@ -140,25 +140,25 @@ public class BuiltinValidatorsTest extends AbstractKeycloakTest { Assert.assertEquals(LengthValidator.KEY_MAX, error1.getInputHint()); // empty config - result = SimpleValidators.validatorConfigValidator().validate(null, LengthValidator.ID, new ValidationContext(session)).toResult(); + result = BuiltinValidators.validatorConfigValidator().validate(null, LengthValidator.ID, new ValidationContext(session)).toResult(); Assert.assertEquals(2, result.getErrors().size()); - result = SimpleValidators.validatorConfigValidator().validate(ValidatorConfig.EMPTY, LengthValidator.ID, new ValidationContext(session)).toResult(); + result = BuiltinValidators.validatorConfigValidator().validate(ValidatorConfig.EMPTY, LengthValidator.ID, new ValidationContext(session)).toResult(); Assert.assertEquals(2, result.getErrors().size()); // correct config - Assert.assertTrue(SimpleValidators.validatorConfigValidator().validate(new ValidatorConfig(ImmutableMap.of(LengthValidator.KEY_MIN, "10")), LengthValidator.ID, new ValidationContext(session)).toResult().isValid()); - Assert.assertTrue(SimpleValidators.validatorConfigValidator().validate(new ValidatorConfig(ImmutableMap.of(LengthValidator.KEY_MAX, "10")), LengthValidator.ID, new ValidationContext(session)).toResult().isValid()); - Assert.assertTrue(SimpleValidators.validatorConfigValidator().validate(new ValidatorConfig(ImmutableMap.of(LengthValidator.KEY_MIN, "10", LengthValidator.KEY_MAX, "10")), LengthValidator.ID, new ValidationContext(session)).toResult().isValid()); + Assert.assertTrue(BuiltinValidators.validatorConfigValidator().validate(new ValidatorConfig(ImmutableMap.of(LengthValidator.KEY_MIN, "10")), LengthValidator.ID, new ValidationContext(session)).toResult().isValid()); + Assert.assertTrue(BuiltinValidators.validatorConfigValidator().validate(new ValidatorConfig(ImmutableMap.of(LengthValidator.KEY_MAX, "10")), LengthValidator.ID, new ValidationContext(session)).toResult().isValid()); + Assert.assertTrue(BuiltinValidators.validatorConfigValidator().validate(new ValidatorConfig(ImmutableMap.of(LengthValidator.KEY_MIN, "10", LengthValidator.KEY_MAX, "10")), LengthValidator.ID, new ValidationContext(session)).toResult().isValid()); // max is smaller than min - Assert.assertFalse(SimpleValidators.validatorConfigValidator().validate(new ValidatorConfig(ImmutableMap.of(LengthValidator.KEY_MIN, "10", LengthValidator.KEY_MAX, "9")), LengthValidator.ID, new ValidationContext(session)).toResult().isValid()); + Assert.assertFalse(BuiltinValidators.validatorConfigValidator().validate(new ValidatorConfig(ImmutableMap.of(LengthValidator.KEY_MIN, "10", LengthValidator.KEY_MAX, "9")), LengthValidator.ID, new ValidationContext(session)).toResult().isValid()); } @Test public void testEmailValidator() { // this also validates StringFormatValidatorBase for simple values - Validator validator = SimpleValidators.emailValidator(); + Validator validator = BuiltinValidators.emailValidator(); Assert.assertFalse(validator.validate(null, "email").isValid()); Assert.assertFalse(validator.validate("", "email").isValid()); @@ -191,7 +191,7 @@ public class BuiltinValidatorsTest extends AbstractKeycloakTest { @Test public void testAbstractSimpleValidatorSupportForCollections() { - Validator validator = SimpleValidators.emailValidator(); + Validator validator = BuiltinValidators.emailValidator(); List valuesCollection = new ArrayList<>(); @@ -215,7 +215,7 @@ public class BuiltinValidatorsTest extends AbstractKeycloakTest { @Test public void testNotBlankValidator() { - Validator validator = SimpleValidators.notBlankValidator(); + Validator validator = BuiltinValidators.notBlankValidator(); // simple String value Assert.assertTrue(validator.validate("tester", "username").isValid()); @@ -238,7 +238,7 @@ public class BuiltinValidatorsTest extends AbstractKeycloakTest { @Test public void testNotEmptyValidator() { - Validator validator = SimpleValidators.notEmptyValidator(); + Validator validator = BuiltinValidators.notEmptyValidator(); Assert.assertTrue(validator.validate("tester", "username").isValid()); Assert.assertTrue(validator.validate(" ", "username").isValid()); @@ -256,7 +256,7 @@ public class BuiltinValidatorsTest extends AbstractKeycloakTest { @Test public void testDoubleValidator() { - Validator validator = SimpleValidators.doubleValidator(); + Validator validator = BuiltinValidators.doubleValidator(); // null value and empty String Assert.assertFalse(validator.validate(null, "null").isValid()); @@ -326,7 +326,7 @@ public class BuiltinValidatorsTest extends AbstractKeycloakTest { // invalid min and max config values ValidatorConfig config = new ValidatorConfig(ImmutableMap.of(DoubleValidator.KEY_MIN, new Object(), DoubleValidator.KEY_MAX, "invalid")); - ValidationResult result = SimpleValidators.validatorConfigValidator().validate(config, DoubleValidator.ID, new ValidationContext(session)).toResult(); + ValidationResult result = BuiltinValidators.validatorConfigValidator().validate(config, DoubleValidator.ID, new ValidationContext(session)).toResult(); Assert.assertFalse(result.isValid()); ValidationError[] errors = result.getErrors().toArray(new ValidationError[0]); @@ -342,23 +342,23 @@ public class BuiltinValidatorsTest extends AbstractKeycloakTest { Assert.assertEquals(DoubleValidator.KEY_MAX, error1.getInputHint()); // empty config - result = SimpleValidators.validatorConfigValidator().validate(null, DoubleValidator.ID, new ValidationContext(session)).toResult(); + result = BuiltinValidators.validatorConfigValidator().validate(null, DoubleValidator.ID, new ValidationContext(session)).toResult(); Assert.assertEquals(0, result.getErrors().size()); - result = SimpleValidators.validatorConfigValidator().validate(ValidatorConfig.EMPTY, DoubleValidator.ID, new ValidationContext(session)).toResult(); + result = BuiltinValidators.validatorConfigValidator().validate(ValidatorConfig.EMPTY, DoubleValidator.ID, new ValidationContext(session)).toResult(); Assert.assertEquals(0, result.getErrors().size()); // correct config - Assert.assertTrue(SimpleValidators.validatorConfigValidator().validate(new ValidatorConfig(ImmutableMap.of(DoubleValidator.KEY_MIN, "10.1")), DoubleValidator.ID, new ValidationContext(session)).toResult().isValid()); - Assert.assertTrue(SimpleValidators.validatorConfigValidator().validate(new ValidatorConfig(ImmutableMap.of(DoubleValidator.KEY_MAX, "10.1")), DoubleValidator.ID, new ValidationContext(session)).toResult().isValid()); - Assert.assertTrue(SimpleValidators.validatorConfigValidator().validate(new ValidatorConfig(ImmutableMap.of(DoubleValidator.KEY_MIN, "10.1", DoubleValidator.KEY_MAX, "11")), DoubleValidator.ID, new ValidationContext(session)).toResult().isValid()); + Assert.assertTrue(BuiltinValidators.validatorConfigValidator().validate(new ValidatorConfig(ImmutableMap.of(DoubleValidator.KEY_MIN, "10.1")), DoubleValidator.ID, new ValidationContext(session)).toResult().isValid()); + Assert.assertTrue(BuiltinValidators.validatorConfigValidator().validate(new ValidatorConfig(ImmutableMap.of(DoubleValidator.KEY_MAX, "10.1")), DoubleValidator.ID, new ValidationContext(session)).toResult().isValid()); + Assert.assertTrue(BuiltinValidators.validatorConfigValidator().validate(new ValidatorConfig(ImmutableMap.of(DoubleValidator.KEY_MIN, "10.1", DoubleValidator.KEY_MAX, "11")), DoubleValidator.ID, new ValidationContext(session)).toResult().isValid()); // max is smaller than min - Assert.assertFalse(SimpleValidators.validatorConfigValidator().validate(new ValidatorConfig(ImmutableMap.of(DoubleValidator.KEY_MIN, "10.1", DoubleValidator.KEY_MAX, "10.1")), DoubleValidator.ID, new ValidationContext(session)).toResult().isValid()); + Assert.assertFalse(BuiltinValidators.validatorConfigValidator().validate(new ValidatorConfig(ImmutableMap.of(DoubleValidator.KEY_MIN, "10.1", DoubleValidator.KEY_MAX, "10.1")), DoubleValidator.ID, new ValidationContext(session)).toResult().isValid()); } @Test public void testIntegerValidator() { - Validator validator = SimpleValidators.integerValidator(); + Validator validator = BuiltinValidators.integerValidator(); // null value and empty String Assert.assertFalse(validator.validate(null, "null").isValid()); @@ -429,7 +429,7 @@ public class BuiltinValidatorsTest extends AbstractKeycloakTest { // invalid min and max config values ValidatorConfig config = new ValidatorConfig(ImmutableMap.of(IntegerValidator.KEY_MIN, new Object(), IntegerValidator.KEY_MAX, "invalid")); - ValidationResult result = SimpleValidators.validatorConfigValidator().validate(config, IntegerValidator.ID, new ValidationContext(session)).toResult(); + ValidationResult result = BuiltinValidators.validatorConfigValidator().validate(config, IntegerValidator.ID, new ValidationContext(session)).toResult(); Assert.assertFalse(result.isValid()); ValidationError[] errors = result.getErrors().toArray(new ValidationError[0]); @@ -445,24 +445,24 @@ public class BuiltinValidatorsTest extends AbstractKeycloakTest { Assert.assertEquals(IntegerValidator.KEY_MAX, error1.getInputHint()); // empty config - result = SimpleValidators.validatorConfigValidator().validate(null, IntegerValidator.ID, new ValidationContext(session)).toResult(); + result = BuiltinValidators.validatorConfigValidator().validate(null, IntegerValidator.ID, new ValidationContext(session)).toResult(); Assert.assertEquals(0, result.getErrors().size()); - result = SimpleValidators.validatorConfigValidator().validate(ValidatorConfig.EMPTY, IntegerValidator.ID, new ValidationContext(session)).toResult(); + result = BuiltinValidators.validatorConfigValidator().validate(ValidatorConfig.EMPTY, IntegerValidator.ID, new ValidationContext(session)).toResult(); Assert.assertEquals(0, result.getErrors().size()); // correct config - Assert.assertTrue(SimpleValidators.validatorConfigValidator().validate(new ValidatorConfig(ImmutableMap.of(IntegerValidator.KEY_MIN, "10")), IntegerValidator.ID, new ValidationContext(session)).toResult().isValid()); - Assert.assertTrue(SimpleValidators.validatorConfigValidator().validate(new ValidatorConfig(ImmutableMap.of(IntegerValidator.KEY_MAX, "10")), IntegerValidator.ID, new ValidationContext(session)).toResult().isValid()); - Assert.assertTrue(SimpleValidators.validatorConfigValidator().validate(new ValidatorConfig(ImmutableMap.of(IntegerValidator.KEY_MIN, "10", IntegerValidator.KEY_MAX, "11")), IntegerValidator.ID, new ValidationContext(session)).toResult().isValid()); + Assert.assertTrue(BuiltinValidators.validatorConfigValidator().validate(new ValidatorConfig(ImmutableMap.of(IntegerValidator.KEY_MIN, "10")), IntegerValidator.ID, new ValidationContext(session)).toResult().isValid()); + Assert.assertTrue(BuiltinValidators.validatorConfigValidator().validate(new ValidatorConfig(ImmutableMap.of(IntegerValidator.KEY_MAX, "10")), IntegerValidator.ID, new ValidationContext(session)).toResult().isValid()); + Assert.assertTrue(BuiltinValidators.validatorConfigValidator().validate(new ValidatorConfig(ImmutableMap.of(IntegerValidator.KEY_MIN, "10", IntegerValidator.KEY_MAX, "11")), IntegerValidator.ID, new ValidationContext(session)).toResult().isValid()); // max is smaller than min - Assert.assertFalse(SimpleValidators.validatorConfigValidator().validate(new ValidatorConfig(ImmutableMap.of(IntegerValidator.KEY_MIN, "10", IntegerValidator.KEY_MAX, "10")), IntegerValidator.ID, new ValidationContext(session)).toResult().isValid()); + Assert.assertFalse(BuiltinValidators.validatorConfigValidator().validate(new ValidatorConfig(ImmutableMap.of(IntegerValidator.KEY_MIN, "10", IntegerValidator.KEY_MAX, "10")), IntegerValidator.ID, new ValidationContext(session)).toResult().isValid()); } @Test public void testPatternValidator() { - Validator validator = SimpleValidators.patternValidator(); + Validator validator = BuiltinValidators.patternValidator(); // Pattern object in the configuration ValidatorConfig config = configFromMap(Collections.singletonMap(PatternValidator.CFG_PATTERN, Pattern.compile("^start-.*-end$"))); @@ -493,7 +493,7 @@ public class BuiltinValidatorsTest extends AbstractKeycloakTest { @Test public void testUriValidator() throws Exception { - Validator validator = SimpleValidators.uriValidator(); + Validator validator = BuiltinValidators.uriValidator(); Assert.assertTrue(validator.validate(null, "baseUrl").isValid()); Assert.assertTrue(validator.validate("", "baseUrl").isValid()); @@ -509,14 +509,14 @@ public class BuiltinValidatorsTest extends AbstractKeycloakTest { Assert.assertFalse(validator.validate("https://localhost:3000/#someFragment", "baseUrl", config).isValid()); // it is also possible to call dedicated validation methods on a built-in validator - Assert.assertTrue(SimpleValidators.uriValidator().validateUri(new URI("https://customurl"), Collections.singleton("https"), true, true)); + Assert.assertTrue(BuiltinValidators.uriValidator().validateUri(new URI("https://customurl"), Collections.singleton("https"), true, true)); - Assert.assertFalse(SimpleValidators.uriValidator().validateUri(new URI("http://customurl"), Collections.singleton("https"), true, true)); + Assert.assertFalse(BuiltinValidators.uriValidator().validateUri(new URI("http://customurl"), Collections.singleton("https"), true, true)); } @Test public void testOptionsValidator(){ - Validator validator = SimpleValidators.optionsValidator(); + Validator validator = BuiltinValidators.optionsValidator(); // options not configured - always invalid Assert.assertFalse(validator.validate(null, "test", ValidatorConfig.builder().config(OptionsValidator.KEY_OPTIONS, null).build()).isValid()); @@ -557,14 +557,14 @@ public class BuiltinValidatorsTest extends AbstractKeycloakTest { @ModelTest public void testOptionsValidator_Config_Validation(KeycloakSession session) { - ValidationResult result = SimpleValidators.validatorConfigValidator().validate(ValidatorConfig.builder().build(), OptionsValidator.ID, new ValidationContext(session)).toResult(); + ValidationResult result = BuiltinValidators.validatorConfigValidator().validate(ValidatorConfig.builder().build(), OptionsValidator.ID, new ValidationContext(session)).toResult(); Assert.assertFalse(result.isValid()); // invalid type of the config value - result = SimpleValidators.validatorConfigValidator().validate(ValidatorConfig.builder().config(OptionsValidator.KEY_OPTIONS, "a").build(), OptionsValidator.ID, new ValidationContext(session)).toResult(); + result = BuiltinValidators.validatorConfigValidator().validate(ValidatorConfig.builder().config(OptionsValidator.KEY_OPTIONS, "a").build(), OptionsValidator.ID, new ValidationContext(session)).toResult(); Assert.assertFalse(result.isValid()); - result = SimpleValidators.validatorConfigValidator().validate(ValidatorConfig.builder().config(OptionsValidator.KEY_OPTIONS, Arrays.asList("opt1")).build(), OptionsValidator.ID, new ValidationContext(session)).toResult(); + result = BuiltinValidators.validatorConfigValidator().validate(ValidatorConfig.builder().config(OptionsValidator.KEY_OPTIONS, Arrays.asList("opt1")).build(), OptionsValidator.ID, new ValidationContext(session)).toResult(); Assert.assertTrue(result.isValid()); } diff --git a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/validation/ValidatorTest.java b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/validation/ValidatorTest.java index 97eb75af74..39f58172af 100644 --- a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/validation/ValidatorTest.java +++ b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/validation/ValidatorTest.java @@ -25,7 +25,6 @@ import static org.junit.Assert.assertTrue; import java.util.Collections; import java.util.Locale; -import org.junit.Assert; import org.junit.Test; import org.keycloak.models.KeycloakSession; import org.keycloak.models.RealmModel; @@ -34,7 +33,7 @@ import org.keycloak.representations.idm.RealmRepresentation; import org.keycloak.testsuite.AbstractTestRealmKeycloakTest; import org.keycloak.testsuite.runonserver.RunOnServer; import org.keycloak.validate.ValidationContext; -import org.keycloak.validate.Validators; +import org.keycloak.validate.BuiltinValidators; /** * @author Pedro Igor @@ -51,21 +50,21 @@ public class ValidatorTest extends AbstractTestRealmKeycloakTest { } private static void testDateValidator(KeycloakSession session) { - assertTrue(SimpleValidators.dateValidator().validate(null, new ValidationContext(session)).isValid()); - assertTrue(SimpleValidators.dateValidator().validate("", new ValidationContext(session)).isValid()); + assertTrue(BuiltinValidators.dateValidator().validate(null, new ValidationContext(session)).isValid()); + assertTrue(BuiltinValidators.dateValidator().validate("", new ValidationContext(session)).isValid()); // defaults to Locale.ENGLISH as per default locale selector - assertFalse(SimpleValidators.dateValidator().validate("13/12/2021", new ValidationContext(session)).isValid()); - assertFalse(SimpleValidators.dateValidator().validate("13/12/21", new ValidationContext(session)).isValid()); - assertTrue(SimpleValidators.dateValidator().validate("12/13/2021", new ValidationContext(session)).isValid()); + assertFalse(BuiltinValidators.dateValidator().validate("13/12/2021", new ValidationContext(session)).isValid()); + assertFalse(BuiltinValidators.dateValidator().validate("13/12/21", new ValidationContext(session)).isValid()); + assertTrue(BuiltinValidators.dateValidator().validate("12/13/2021", new ValidationContext(session)).isValid()); RealmModel realm = session.getContext().getRealm(); realm.setInternationalizationEnabled(true); realm.setDefaultLocale(Locale.FRANCE.getLanguage()); - assertTrue(SimpleValidators.dateValidator().validate("13/12/21", new ValidationContext(session)).isValid()); - assertTrue(SimpleValidators.dateValidator().validate("13/12/2021", new ValidationContext(session)).isValid()); - assertFalse(SimpleValidators.dateValidator().validate("12/13/2021", new ValidationContext(session)).isValid()); + assertTrue(BuiltinValidators.dateValidator().validate("13/12/21", new ValidationContext(session)).isValid()); + assertTrue(BuiltinValidators.dateValidator().validate("13/12/2021", new ValidationContext(session)).isValid()); + assertFalse(BuiltinValidators.dateValidator().validate("12/13/2021", new ValidationContext(session)).isValid()); UserModel alice = session.users().getUserByUsername(realm, "alice"); @@ -75,6 +74,6 @@ public class ValidatorTest extends AbstractTestRealmKeycloakTest { context.getAttributes().put(UserModel.class.getName(), alice); - assertFalse(SimpleValidators.dateValidator().validate("13/12/2021", context).isValid()); + assertFalse(BuiltinValidators.dateValidator().validate("13/12/2021", context).isValid()); } } diff --git a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/validation/ValidatorsTest.java b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/validation/ValidatorsTest.java index f28724d71f..1e8d101247 100644 --- a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/validation/ValidatorsTest.java +++ b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/validation/ValidatorsTest.java @@ -46,6 +46,7 @@ import org.keycloak.validate.Validators; import org.keycloak.validate.validators.EmailValidator; import org.keycloak.validate.validators.LengthValidator; import org.keycloak.validate.validators.NotBlankValidator; +import org.keycloak.validate.BuiltinValidators; import org.keycloak.validate.validators.ValidatorConfigValidator; public class ValidatorsTest extends AbstractKeycloakTest { @@ -57,7 +58,7 @@ public class ValidatorsTest extends AbstractKeycloakTest { @Test public void simpleValidation() { - Validator validator = SimpleValidators.notEmptyValidator(); + Validator validator = BuiltinValidators.notEmptyValidator(); Assert.assertTrue(validator.validate("a").isValid()); Assert.assertFalse(validator.validate("").isValid()); @@ -67,7 +68,7 @@ public class ValidatorsTest extends AbstractKeycloakTest { @ModelTest public void simpleValidationWithContext(KeycloakSession session) { - Validator validator = SimpleValidators.lengthValidator(); + Validator validator = BuiltinValidators.lengthValidator(); ValidationContext context = new ValidationContext(session); validator.validate("a", "username", context); @@ -82,7 +83,7 @@ public class ValidatorsTest extends AbstractKeycloakTest { ValidationContext context = new ValidationContext(session); - ValidationResult result = SimpleValidators.lengthValidator().validate("a", "username", context).toResult(); + ValidationResult result = BuiltinValidators.lengthValidator().validate("a", "username", context).toResult(); Assert.assertTrue(result.isValid()); } @@ -139,11 +140,11 @@ public class ValidatorsTest extends AbstractKeycloakTest { public void acceptOnError() { AtomicBoolean bool1 = new AtomicBoolean(); - SimpleValidators.notEmptyValidator().validate("a").toResult().ifNotValidAccept(r -> bool1.set(true)); + BuiltinValidators.notEmptyValidator().validate("a").toResult().ifNotValidAccept(r -> bool1.set(true)); Assert.assertFalse(bool1.get()); AtomicBoolean bool2 = new AtomicBoolean(); - SimpleValidators.notEmptyValidator().validate("").toResult().ifNotValidAccept(r -> bool2.set(true)); + BuiltinValidators.notEmptyValidator().validate("").toResult().ifNotValidAccept(r -> bool2.set(true)); Assert.assertTrue(bool2.get()); } @@ -186,8 +187,8 @@ public class ValidatorsTest extends AbstractKeycloakTest { String input = "aaa"; String inputHint = "username"; - SimpleValidators.lengthValidator().validate(input, inputHint, context); - SimpleValidators.notEmptyValidator().validate(input, inputHint, context); + BuiltinValidators.lengthValidator().validate(input, inputHint, context); + BuiltinValidators.notEmptyValidator().validate(input, inputHint, context); ValidationResult result = context.toResult(); @@ -203,8 +204,8 @@ public class ValidatorsTest extends AbstractKeycloakTest { String input = " "; String inputHint = "username"; - SimpleValidators.lengthValidator().validate(input, inputHint, context, configFromMap(Collections.singletonMap(LengthValidator.KEY_MIN, 1))); - SimpleValidators.notBlankValidator().validate(input, inputHint, context); + BuiltinValidators.lengthValidator().validate(input, inputHint, context, configFromMap(Collections.singletonMap(LengthValidator.KEY_MIN, 1))); + BuiltinValidators.notBlankValidator().validate(input, inputHint, context); ValidationResult result = context.toResult(); @@ -239,7 +240,7 @@ public class ValidatorsTest extends AbstractKeycloakTest { @Test @ModelTest public void validateEmailValidator(KeycloakSession session) { - SimpleValidator validator = SimpleValidators.emailValidator(); + SimpleValidator validator = BuiltinValidators.emailValidator(); Assert.assertTrue(validator.validateConfig(session, null).isValid()); Assert.assertTrue(validator.validateConfig(session, ValidatorConfig.EMPTY).isValid());