Updated Branches:
  refs/heads/wicket-6.x ffd155a13 -> 807f063a5

Fix WICKET-5259: skip username+password when searching for portnumber


Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/807f063a
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/807f063a
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/807f063a

Branch: refs/heads/wicket-6.x
Commit: 807f063a5c62babb4e44c21295c1464bd515661c
Parents: ffd155a
Author: Emond Papegaaij <[email protected]>
Authored: Fri Jun 28 18:03:26 2013 +0200
Committer: Emond Papegaaij <[email protected]>
Committed: Fri Jun 28 18:03:26 2013 +0200

----------------------------------------------------------------------
 .../java/org/apache/wicket/request/Url.java     |  7 +++---
 .../java/org/apache/wicket/request/UrlTest.java | 25 ++++++++++++++++++++
 2 files changed, 29 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/wicket/blob/807f063a/wicket-request/src/main/java/org/apache/wicket/request/Url.java
----------------------------------------------------------------------
diff --git a/wicket-request/src/main/java/org/apache/wicket/request/Url.java 
b/wicket-request/src/main/java/org/apache/wicket/request/Url.java
index 5297857..ab70446 100755
--- a/wicket-request/src/main/java/org/apache/wicket/request/Url.java
+++ b/wicket-request/src/main/java/org/apache/wicket/request/Url.java
@@ -263,7 +263,8 @@ public class Url implements Serializable
                                hostAndPort = afterProto.substring(0, 
relativeAt);
                        }
 
-                       final int portAt = hostAndPort.lastIndexOf(':');
+                       final int credentialsAt = hostAndPort.lastIndexOf('@') 
+ 1;
+                       final int portAt = 
hostAndPort.substring(credentialsAt).lastIndexOf(':');
 
                        if (portAt == -1)
                        {
@@ -272,8 +273,8 @@ public class Url implements Serializable
                        }
                        else
                        {
-                               result.host = hostAndPort.substring(0, portAt);
-                               result.port = 
Integer.parseInt(hostAndPort.substring(portAt + 1));
+                               result.host = hostAndPort.substring(0, portAt + 
credentialsAt);
+                               result.port = 
Integer.parseInt(hostAndPort.substring(portAt + credentialsAt + 1));
                        }
 
                        if (relativeAt < 0)

http://git-wip-us.apache.org/repos/asf/wicket/blob/807f063a/wicket-request/src/test/java/org/apache/wicket/request/UrlTest.java
----------------------------------------------------------------------
diff --git 
a/wicket-request/src/test/java/org/apache/wicket/request/UrlTest.java 
b/wicket-request/src/test/java/org/apache/wicket/request/UrlTest.java
index 49df8de..ca8660a 100644
--- a/wicket-request/src/test/java/org/apache/wicket/request/UrlTest.java
+++ b/wicket-request/src/test/java/org/apache/wicket/request/UrlTest.java
@@ -261,6 +261,31 @@ public class UrlTest extends Assert
        }
 
        /**
+        * WICKET-5259
+        */
+       @Test
+       public void parse17()
+       {
+               String s = "http://me:secret@localhost";;
+               Url url = Url.parse(s);
+               assertEquals("http", url.getProtocol());
+               assertEquals("me:secret@localhost", url.getHost());
+       }
+
+       /**
+        * WICKET-5259
+        */
+       @Test
+       public void parse18()
+       {
+               String s = "http://me:secret@localhost:8080";;
+               Url url = Url.parse(s);
+               assertEquals("http", url.getProtocol());
+               assertEquals("me:secret@localhost", url.getHost());
+               assertEquals(Integer.valueOf(8080), url.getPort());
+       }
+
+       /**
         * 
         */
        @Test

Reply via email to