You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by se...@apache.org on 2020/06/20 19:52:24 UTC
[commons-validator] branch master updated: VALIDATOR-302/449 Email
leading & trailing spaces
This is an automated email from the ASF dual-hosted git repository.
sebb pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-validator.git
The following commit(s) were added to refs/heads/master by this push:
new a3c5da2 VALIDATOR-302/449 Email leading & trailing spaces
a3c5da2 is described below
commit a3c5da2d0e53003885a6af4875e40565a07b05a4
Author: Sebb <se...@apache.org>
AuthorDate: Sat Jun 20 20:52:15 2020 +0100
VALIDATOR-302/449 Email leading & trailing spaces
---
src/changes/changes.xml | 6 ++++++
.../apache/commons/validator/routines/EmailValidator.java | 4 ++--
src/test/java/org/apache/commons/validator/EmailTest.java | 6 ++++--
.../commons/validator/routines/EmailValidatorTest.java | 14 +++++++++++---
4 files changed, 23 insertions(+), 7 deletions(-)
diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index a007282..a999caa 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -143,6 +143,12 @@ http://commons.apache.org/validator/dependencies.html
<action issue="VALIDATOR-464" type="fix" dev="sebb" due-to="Sebastian Choina">
UrlValidator says "file://bad ^ domain.com/label/test" is valid
</action>
+ <action issue="VALIDATOR-449" type="fix" dev="sebb" due-to="Frederic Boutin">
+ Leading and trailing spaces in EmailValidator should not be valid
+ </action>
+ <action issue="VALIDATOR-302" type="fix" dev="sebb" due-to="Guido Zockoll">
+ EMailValidator: Addresses with leading spaces must not be accepted
+ </action>
</release>
<release version="1.6" date="2017-02-21" description="
diff --git a/src/main/java/org/apache/commons/validator/routines/EmailValidator.java b/src/main/java/org/apache/commons/validator/routines/EmailValidator.java
index 91d56cf..51337d9 100644
--- a/src/main/java/org/apache/commons/validator/routines/EmailValidator.java
+++ b/src/main/java/org/apache/commons/validator/routines/EmailValidator.java
@@ -42,9 +42,9 @@ public class EmailValidator implements Serializable {
private static final String QUOTED_USER = "(\"(\\\\\"|[^\"])*\")";
private static final String WORD = "((" + VALID_CHARS + "|')+|" + QUOTED_USER + ")";
- private static final String EMAIL_REGEX = "^\\s*?(.+)@(.+?)\\s*$";
+ private static final String EMAIL_REGEX = "^(.+)@(\\S+)$";
private static final String IP_DOMAIN_REGEX = "^\\[(.*)\\]$";
- private static final String USER_REGEX = "^\\s*" + WORD + "(\\." + WORD + ")*$";
+ private static final String USER_REGEX = "^" + WORD + "(\\." + WORD + ")*$";
private static final Pattern EMAIL_PATTERN = Pattern.compile(EMAIL_REGEX);
private static final Pattern IP_DOMAIN_PATTERN = Pattern.compile(IP_DOMAIN_REGEX);
diff --git a/src/test/java/org/apache/commons/validator/EmailTest.java b/src/test/java/org/apache/commons/validator/EmailTest.java
index 09667e2..1216bd8 100644
--- a/src/test/java/org/apache/commons/validator/EmailTest.java
+++ b/src/test/java/org/apache/commons/validator/EmailTest.java
@@ -190,13 +190,15 @@ protected void setUp() throws IOException, SAXException {
info.setValue("joeblow@ apache.org");
valueTest(info, false);
info.setValue(" joeblow@apache.org");
- valueTest(info, true);
+ valueTest(info, false);
info.setValue("joeblow@apache.org ");
- valueTest(info, true);
+ valueTest(info, false);
info.setValue("joe blow@apache.org ");
valueTest(info, false);
info.setValue("joeblow@apa che.org ");
valueTest(info, false);
+ info.setValue("\"joe blow\"@apache.org");
+ valueTest(info, true);
}
diff --git a/src/test/java/org/apache/commons/validator/routines/EmailValidatorTest.java b/src/test/java/org/apache/commons/validator/routines/EmailValidatorTest.java
index 8482aa5..0df9202 100644
--- a/src/test/java/org/apache/commons/validator/routines/EmailValidatorTest.java
+++ b/src/test/java/org/apache/commons/validator/routines/EmailValidatorTest.java
@@ -178,18 +178,24 @@ protected void tearDown() {
* Tests the email validation with spaces.
*/
public void testEmailWithSpaces() {
- assertFalse(validator.isValid("joeblow @apache.org")); // TODO - this should be valid?
+ assertFalse(validator.isValid("joeblow @apache.org"));
assertFalse(validator.isValid("joeblow@ apache.org"));
- assertTrue(validator.isValid(" joeblow@apache.org")); // TODO - this should be valid?
+ assertFalse(validator.isValid(" joeblow@apache.org"));
- assertTrue(validator.isValid("joeblow@apache.org "));
+ assertFalse(validator.isValid("joeblow@apache.org "));
assertFalse(validator.isValid("joe blow@apache.org "));
assertFalse(validator.isValid("joeblow@apa che.org "));
+ assertTrue(validator.isValid("\"joeblow \"@apache.org"));
+
+ assertTrue(validator.isValid("\" joeblow\"@apache.org"));
+
+ assertTrue(validator.isValid("\" joe blow \"@apache.org"));
+
}
/**
@@ -345,6 +351,8 @@ protected void tearDown() {
assertTrue(validator.isValid("\"joe+\"@apache.org"));
+ assertTrue(validator.isValid("\"joe@\"@apache.org"));
+
assertTrue(validator.isValid("\"joe!\"@apache.org"));
assertTrue(validator.isValid("\"joe*\"@apache.org"));