Updated Branches:
  refs/heads/wicket-1.5.x d3053686c -> f65b90a1b

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

Conflicts:
        wicket-request/src/test/java/org/apache/wicket/request/UrlTest.java


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

Branch: refs/heads/wicket-1.5.x
Commit: f65b90a1ba882a06c029ebeeb050e66e7ad03874
Parents: d305368
Author: Emond Papegaaij <[email protected]>
Authored: Fri Jun 28 18:03:26 2013 +0200
Committer: Emond Papegaaij <[email protected]>
Committed: Fri Jun 28 18:05:36 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/f65b90a1/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 e47142a..dd3f67d 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
@@ -185,7 +185,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)
                        {
@@ -194,8 +195,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/f65b90a1/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 617938b..e3a81a1 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
@@ -236,6 +236,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