Skip to content

Commit

Permalink
fix(email-validation): replace email validator with a more correct one
Browse files Browse the repository at this point in the history
  • Loading branch information
windwinkel committed Jun 18, 2024
1 parent 5274414 commit 33e8e9f
Show file tree
Hide file tree
Showing 5 changed files with 11 additions and 13 deletions.
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
6 changes: 3 additions & 3 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -385,9 +385,9 @@
</dependency>
<!--Implementation of the Jakarta Mail API-->
<dependency>
<groupId>com.github.bbottema</groupId>
<artifactId>emailaddress-rfc2822</artifactId>
<version>2.3.1</version>
<groupId>com.sanctionco.jmail</groupId>
<artifactId>jmail</artifactId>
<version>1.6.2</version>
</dependency>
<dependency>
<groupId>org.eclipse.angus</groupId>
Expand Down
7 changes: 3 additions & 4 deletions server-spi-private/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,6 @@
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>

</dependency>
<dependency>
<groupId>com.google.guava</groupId>
Expand All @@ -78,9 +77,9 @@
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.github.bbottema</groupId>
<artifactId>emailaddress-rfc2822</artifactId>
<version>2.3.1</version>
<groupId>com.sanctionco.jmail</groupId>
<artifactId>jmail</artifactId>
<version>1.6.2</version>
</dependency>
</dependencies>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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));
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -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) {
Expand Down

0 comments on commit 33e8e9f

Please sign in to comment.