You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by mg...@apache.org on 2013/08/08 14:43:08 UTC
git commit: WICKET-5287 NumberFormatException when parsing the port
from Requests with invalid URIs
Updated Branches:
refs/heads/master 2e2c4ba69 -> e6c24a19f
WICKET-5287 NumberFormatException when parsing the port from Requests with invalid URIs
Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/e6c24a19
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/e6c24a19
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/e6c24a19
Branch: refs/heads/master
Commit: e6c24a19f0ada846445cbc9a3d87a0a37617db84
Parents: 2e2c4ba
Author: Martin Tzvetanov Grigorov <mg...@apache.org>
Authored: Thu Aug 8 14:42:55 2013 +0200
Committer: Martin Tzvetanov Grigorov <mg...@apache.org>
Committed: Thu Aug 8 14:42:55 2013 +0200
----------------------------------------------------------------------
.../protocol/http/servlet/ServletWebRequest.java | 2 +-
.../http/servlet/ServletWebRequestTest.java | 15 +++++++++++++++
.../main/java/org/apache/wicket/request/Url.java | 17 ++++++++++++++++-
3 files changed, 32 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/wicket/blob/e6c24a19/wicket-core/src/main/java/org/apache/wicket/protocol/http/servlet/ServletWebRequest.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/protocol/http/servlet/ServletWebRequest.java b/wicket-core/src/main/java/org/apache/wicket/protocol/http/servlet/ServletWebRequest.java
index ecd0f22..0581076 100644
--- a/wicket-core/src/main/java/org/apache/wicket/protocol/http/servlet/ServletWebRequest.java
+++ b/wicket-core/src/main/java/org/apache/wicket/protocol/http/servlet/ServletWebRequest.java
@@ -205,7 +205,7 @@ public class ServletWebRequest extends WebRequest
}
}
- return setParameters(Url.parse(url.toString(), getCharset()));
+ return setParameters(Url.parse(url.toString(), getCharset(), false));
}
/**
http://git-wip-us.apache.org/repos/asf/wicket/blob/e6c24a19/wicket-core/src/test/java/org/apache/wicket/protocol/http/servlet/ServletWebRequestTest.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/protocol/http/servlet/ServletWebRequestTest.java b/wicket-core/src/test/java/org/apache/wicket/protocol/http/servlet/ServletWebRequestTest.java
index f974a06..965dcd8 100644
--- a/wicket-core/src/test/java/org/apache/wicket/protocol/http/servlet/ServletWebRequestTest.java
+++ b/wicket-core/src/test/java/org/apache/wicket/protocol/http/servlet/ServletWebRequestTest.java
@@ -191,6 +191,21 @@ public class ServletWebRequestTest extends Assert
assertEquals("any/source/of/error", errorClientUrl.toString());
}
+ /**
+ * WICKET-5287
+ */
+ @Test
+ public void parseUrlWhichLooksLikeFullInItsContextRelativePart()
+ {
+ String filterPath = "filterPath";
+ MockHttpServletRequest httpRequest = new MockHttpServletRequest(null, null, null);
+ String looksLikeFullUrl = "/foo://:/";
+ httpRequest.setURL("http://localhost" + '/' + httpRequest.getContextPath() + '/' + filterPath + looksLikeFullUrl);
+
+ ServletWebRequest webRequest = new ServletWebRequest(httpRequest, filterPath);
+ assertEquals(looksLikeFullUrl, webRequest.getClientUrl().toString());
+ }
+
private static class CustomRequestPage extends WebPage implements IMarkupResourceStreamProvider
{
private static final long serialVersionUID = 1L;
http://git-wip-us.apache.org/repos/asf/wicket/blob/e6c24a19/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 596163e..11f6b47 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
@@ -202,6 +202,21 @@ public class Url implements Serializable
*/
public static Url parse(CharSequence _url, Charset charset)
{
+ return parse(_url, charset, true);
+ }
+
+ /**
+ * Parses the given URL string.
+ *
+ * @param _url
+ * absolute or relative url with query string
+ * @param charset
+ * @param isFullHint
+ * a hint whether to try to parse the protocol, host and port part of the url
+ * @return Url object
+ */
+ public static Url parse(CharSequence _url, Charset charset, boolean isFullHint)
+ {
Args.notNull(_url, "_url");
final Url result = new Url(charset);
@@ -237,7 +252,7 @@ public class Url implements Serializable
boolean protocolLess = absoluteUrl.startsWith("//");
final boolean isFull = (protocolAt > 1 && (protocolAt < idxOfFirstSlash)) || protocolLess;
- if (isFull)
+ if (isFull && isFullHint)
{
if (protocolLess == false)
{