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 2016/01/07 16:20:52 UTC

svn commit: r1723573 - in /commons/proper/validator/trunk/src: changes/changes.xml main/java/org/apache/commons/validator/routines/EmailValidator.java test/java/org/apache/commons/validator/routines/EmailValidatorTest.java

Author: sebb
Date: Thu Jan  7 15:20:52 2016
New Revision: 1723573

URL: http://svn.apache.org/viewvc?rev=1723573&view=rev
Log:
VALIDATOR-384 EmailValidator does not support escaped quotes in a quoted string

Modified:
    commons/proper/validator/trunk/src/changes/changes.xml
    commons/proper/validator/trunk/src/main/java/org/apache/commons/validator/routines/EmailValidator.java
    commons/proper/validator/trunk/src/test/java/org/apache/commons/validator/routines/EmailValidatorTest.java

Modified: commons/proper/validator/trunk/src/changes/changes.xml
URL: http://svn.apache.org/viewvc/commons/proper/validator/trunk/src/changes/changes.xml?rev=1723573&r1=1723572&r2=1723573&view=diff
==============================================================================
--- commons/proper/validator/trunk/src/changes/changes.xml (original)
+++ commons/proper/validator/trunk/src/changes/changes.xml Thu Jan  7 15:20:52 2016
@@ -96,6 +96,9 @@ http://commons.apache.org/validator/depe
     <action issue="VALIDATOR-359" type="fix" dev="sebb" due-to="Dora Kinghorn">
     EmailValidator does not catch invalid email address like dora@.com
     </action>
+    <action issue="VALIDATOR-384" type="fix" dev="sebb" due-to=" Kris Babic">
+    EmailValidator does not support escaped quotes in a quoted string
+    </action>
     <action type="update" dev="sebb">
     Updated to TLD list Version 2016010600, Last Updated Wed Jan  6 07:07:02 2016 UTC
     </action>

Modified: commons/proper/validator/trunk/src/main/java/org/apache/commons/validator/routines/EmailValidator.java
URL: http://svn.apache.org/viewvc/commons/proper/validator/trunk/src/main/java/org/apache/commons/validator/routines/EmailValidator.java?rev=1723573&r1=1723572&r2=1723573&view=diff
==============================================================================
--- commons/proper/validator/trunk/src/main/java/org/apache/commons/validator/routines/EmailValidator.java (original)
+++ commons/proper/validator/trunk/src/main/java/org/apache/commons/validator/routines/EmailValidator.java Thu Jan  7 15:20:52 2016
@@ -39,7 +39,7 @@ public class EmailValidator implements S
 
     private static final String SPECIAL_CHARS = "\\p{Cntrl}\\(\\)<>@,;:'\\\\\\\"\\.\\[\\]";
     private static final String VALID_CHARS = "(\\\\.)|[^\\s" + SPECIAL_CHARS + "]";
-    private static final String QUOTED_USER = "(\"[^\"]*\")";
+    private static final String QUOTED_USER = "(\"(\\\\\"|[^\"])*\")";
     private static final String WORD = "((" + VALID_CHARS + "|')+|" + QUOTED_USER + ")";
 
     private static final String EMAIL_REGEX = "^\\s*?(.+)@(.+?)\\s*$";

Modified: commons/proper/validator/trunk/src/test/java/org/apache/commons/validator/routines/EmailValidatorTest.java
URL: http://svn.apache.org/viewvc/commons/proper/validator/trunk/src/test/java/org/apache/commons/validator/routines/EmailValidatorTest.java?rev=1723573&r1=1723572&r2=1723573&view=diff
==============================================================================
--- commons/proper/validator/trunk/src/test/java/org/apache/commons/validator/routines/EmailValidatorTest.java (original)
+++ commons/proper/validator/trunk/src/test/java/org/apache/commons/validator/routines/EmailValidatorTest.java Thu Jan  7 15:20:52 2016
@@ -367,6 +367,9 @@ public class EmailValidatorTest extends
 
         assertTrue(validator.isValid("\"..\"@apache.org"));
 
+        // escaped quote character valid in quoted string
+        assertTrue(validator.isValid("\"john\\\"doe\"@apache.org"));
+
         assertTrue(validator.isValid("john56789.john56789.john56789.john56789.john56789.john56789.john@example.com"));
 
         assertFalse(validator.isValid("john56789.john56789.john56789.john56789.john56789.john56789.john5@example.com"));