diff --git a/README.md b/README.md index 0cbb23663ca9..46947089b8fd 100644 --- a/README.md +++ b/README.md @@ -13,6 +13,7 @@ Currently, the following fixes are present in the code: * MD-6399 send correct email when calling the verify email endpoint * MD-6730 fix email validation to be RFC compliant. +* MD-7399 update email validator (partially reverts MD-6730) ## Help and Documentation diff --git a/pom.xml b/pom.xml index 1e17b2e2c91a..6709c2ad7179 100644 --- a/pom.xml +++ b/pom.xml @@ -385,9 +385,9 @@ - com.github.bbottema - emailaddress-rfc2822 - 2.3.1 + com.sanctionco.jmail + jmail + 1.6.2 org.eclipse.angus diff --git a/server-spi-private/pom.xml b/server-spi-private/pom.xml index c1abe86c8ef0..02216f4b4741 100755 --- a/server-spi-private/pom.xml +++ b/server-spi-private/pom.xml @@ -60,7 +60,6 @@ org.apache.httpcomponents httpclient - com.google.guava @@ -78,9 +77,9 @@ test - com.github.bbottema - emailaddress-rfc2822 - 2.3.1 + com.sanctionco.jmail + jmail + 1.6.2 diff --git a/server-spi-private/src/main/java/org/keycloak/validate/validators/EmailValidator.java b/server-spi-private/src/main/java/org/keycloak/validate/validators/EmailValidator.java index 2a72725f2d0a..0431b3ee05ba 100644 --- a/server-spi-private/src/main/java/org/keycloak/validate/validators/EmailValidator.java +++ b/server-spi-private/src/main/java/org/keycloak/validate/validators/EmailValidator.java @@ -21,13 +21,12 @@ import org.keycloak.provider.ConfiguredProvider; import org.keycloak.provider.ProviderConfigProperty; -import org.keycloak.utils.EmailValidationUtil; import org.keycloak.validate.AbstractStringValidator; import org.keycloak.validate.ValidationContext; import org.keycloak.validate.ValidationError; import org.keycloak.validate.ValidatorConfig; -import org.hazlewood.connor.bottema.emailaddress.EmailAddressValidator; +import com.sanctionco.jmail.JMail; /** * Email format validation - accepts plain string and collection of strings, for basic behavior like null/blank values @@ -48,7 +47,7 @@ public String getId() { @Override protected void doValidate(String value, String inputHint, ValidationContext context, ValidatorConfig config) { - if (!EmailAddressValidator.isValidStrict(value)) { + if (!JMail.isValid(value)) { context.addError(new ValidationError(ID, inputHint, MESSAGE_INVALID_EMAIL, value)); } } diff --git a/services/src/main/java/org/keycloak/services/validation/Validation.java b/services/src/main/java/org/keycloak/services/validation/Validation.java index fa9965459a6e..29e3037c2f25 100755 --- a/services/src/main/java/org/keycloak/services/validation/Validation.java +++ b/services/src/main/java/org/keycloak/services/validation/Validation.java @@ -17,10 +17,9 @@ package org.keycloak.services.validation; -import org.hazlewood.connor.bottema.emailaddress.EmailAddressValidator; +import com.sanctionco.jmail.JMail; import org.keycloak.models.utils.FormMessage; import org.keycloak.userprofile.ValidationException; -import org.keycloak.utils.EmailValidationUtil; import java.util.ArrayList; import java.util.List; @@ -63,7 +62,7 @@ public static boolean isBlank(String s) { } public static boolean isEmailValid(String email) { - return EmailAddressValidator.isValidStrict(email); + return JMail.isValid(email); } public static boolean isUsernameValid(String username) {