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
