Author: sebb
Date: Sun Feb  5 18:35:00 2017
New Revision: 1781788

URL: http://svn.apache.org/viewvc?rev=1781788&view=rev
Log:
VALIDATOR-387 Userinfo without colon should be valid in UrlValidator

Modified:
    commons/proper/validator/trunk/src/changes/changes.xml
    
commons/proper/validator/trunk/src/main/java/org/apache/commons/validator/routines/UrlValidator.java
    
commons/proper/validator/trunk/src/test/java/org/apache/commons/validator/routines/UrlValidatorTest.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=1781788&r1=1781787&r2=1781788&view=diff
==============================================================================
--- commons/proper/validator/trunk/src/changes/changes.xml (original)
+++ commons/proper/validator/trunk/src/changes/changes.xml Sun Feb  5 18:35:00 
2017
@@ -90,7 +90,10 @@ The dependencies for Validator have not
 For the current list of dependencies, please see
 http://commons.apache.org/validator/dependencies.html
   ">
-    <action issue="VALIDATOR-394" type="add" dev="sebb" due-to="Niall 
Pemberton "</>>
+    <action issue="VALIDATOR-387" type="fix" dev="sebb" due-to=" Shumpei 
Akai"</>>
+    Userinfo without colon should be valid in UrlValidator
+    </action>
+    <action issue="VALIDATOR-394" type="add" dev="sebb" due-to="Niall 
Pemberton"</>>
     General Modulus Ten Check Digit Implementation
     </action>
     <action issue="VALIDATOR-411" type="fix" dev="sebb">

Modified: 
commons/proper/validator/trunk/src/main/java/org/apache/commons/validator/routines/UrlValidator.java
URL: 
http://svn.apache.org/viewvc/commons/proper/validator/trunk/src/main/java/org/apache/commons/validator/routines/UrlValidator.java?rev=1781788&r1=1781787&r2=1781788&view=diff
==============================================================================
--- 
commons/proper/validator/trunk/src/main/java/org/apache/commons/validator/routines/UrlValidator.java
 (original)
+++ 
commons/proper/validator/trunk/src/main/java/org/apache/commons/validator/routines/UrlValidator.java
 Sun Feb  5 18:35:00 2017
@@ -147,8 +147,8 @@ public class UrlValidator implements Ser
     private static final String USERINFO_CHARS_REGEX = 
"[a-zA-Z0-9%-._~!$&'()*+,;=]";
     // since neither ':' nor '@' are allowed chars, we don't need to use 
non-greedy matching
     private static final String USERINFO_FIELD_REGEX =
-            USERINFO_CHARS_REGEX + "+:" + // At least one character for the 
name
-            USERINFO_CHARS_REGEX + "*@"; // password may be absent
+            USERINFO_CHARS_REGEX + "+" + // At least one character for the name
+            "(?::" + USERINFO_CHARS_REGEX + "*)?@"; // colon and password may 
be absent
     private static final String AUTHORITY_REGEX =
             "(?:\\[("+IPV6_REGEX+")\\]|(?:(?:"+USERINFO_FIELD_REGEX+")?([" + 
AUTHORITY_CHARS_REGEX + "]*)))(?::(\\d*))?(.*)?";
     //             1                          e.g. user:pass@          2       
                                  3       4

Modified: 
commons/proper/validator/trunk/src/test/java/org/apache/commons/validator/routines/UrlValidatorTest.java
URL: 
http://svn.apache.org/viewvc/commons/proper/validator/trunk/src/test/java/org/apache/commons/validator/routines/UrlValidatorTest.java?rev=1781788&r1=1781787&r2=1781788&view=diff
==============================================================================
--- 
commons/proper/validator/trunk/src/test/java/org/apache/commons/validator/routines/UrlValidatorTest.java
 (original)
+++ 
commons/proper/validator/trunk/src/test/java/org/apache/commons/validator/routines/UrlValidatorTest.java
 Sun Feb  5 18:35:00 2017
@@ -471,6 +471,7 @@ protected void setUp() {
        assertTrue(validator.isValid("http://www.apache.org:80/path";));
        
assertTrue(validator.isValid("http://user:p...@www.apache.org:80/path";));
        assertTrue(validator.isValid("http://user:@www.apache.org:80/path";));
+       assertTrue(validator.isValid("http://u...@www.apache.org:80/path";));
        
assertTrue(validator.isValid("http://us%00er:-._~!$&;'()*+,;=@www.apache.org:80/path"));
        assertFalse(validator.isValid("http://:p...@www.apache.org:80/path";));
        assertFalse(validator.isValid("http://:@www.apache.org:80/path";));


Reply via email to