Updated Branches: refs/heads/master a83adcd7c -> bd26f9e59
WICKET-4920 prevent double slash Project: http://git-wip-us.apache.org/repos/asf/wicket/repo Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/bd26f9e5 Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/bd26f9e5 Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/bd26f9e5 Branch: refs/heads/master Commit: bd26f9e599b65d1747405f8baac2a8f3b876bb6a Parents: a83adcd Author: svenmeier <[email protected]> Authored: Tue Dec 11 11:42:20 2012 +0100 Committer: svenmeier <[email protected]> Committed: Tue Dec 11 11:42:20 2012 +0100 ---------------------------------------------------------------------- .../wicket/request/cycle/UrlRendererTest.java | 13 +++++++++++++ .../org/apache/wicket/request/UrlRenderer.java | 10 +++++++++- 2 files changed, 22 insertions(+), 1 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/wicket/blob/bd26f9e5/wicket-core/src/test/java/org/apache/wicket/request/cycle/UrlRendererTest.java ---------------------------------------------------------------------- diff --git a/wicket-core/src/test/java/org/apache/wicket/request/cycle/UrlRendererTest.java b/wicket-core/src/test/java/org/apache/wicket/request/cycle/UrlRendererTest.java index c706593..3a7fa92 100644 --- a/wicket-core/src/test/java/org/apache/wicket/request/cycle/UrlRendererTest.java +++ b/wicket-core/src/test/java/org/apache/wicket/request/cycle/UrlRendererTest.java @@ -174,6 +174,19 @@ public class UrlRendererTest extends Assert } /** + * WICKET-4920 prevent double slash + */ + @Test + public void test14() + { + UrlRenderer r1 = new UrlRenderer(new MockWebRequest(new Url())); + + assertEquals( + "./;jsessionid=1p87c5424zjuvd57kljcu2bwa?0-1.IBehaviorListener.1-component", + r1.renderRelativeUrl(Url.parse("http://localhost:8080/;jsessionid=1p87c5424zjuvd57kljcu2bwa?0-1.IBehaviorListener.1-component"))); + } + + /** * Verify that absolute urls are rendered as is, ignoring the current client url and base url * completely. * http://git-wip-us.apache.org/repos/asf/wicket/blob/bd26f9e5/wicket-request/src/main/java/org/apache/wicket/request/UrlRenderer.java ---------------------------------------------------------------------- diff --git a/wicket-request/src/main/java/org/apache/wicket/request/UrlRenderer.java b/wicket-request/src/main/java/org/apache/wicket/request/UrlRenderer.java index 4217fbe..f58e203 100644 --- a/wicket-request/src/main/java/org/apache/wicket/request/UrlRenderer.java +++ b/wicket-request/src/main/java/org/apache/wicket/request/UrlRenderer.java @@ -260,12 +260,20 @@ public class UrlRenderer } newSegments.addAll(urlSegments); + // sanitize start String renderedUrl = new Url(newSegments, url.getQueryParameters()).toString(); - if (!renderedUrl.startsWith("..")) + if (renderedUrl.startsWith("/")) + { + // WICKET-4920 + renderedUrl = "." + renderedUrl; + } + else if (!renderedUrl.startsWith("..")) { // WICKET-4260 renderedUrl = "./" + renderedUrl; } + + // sanitize end if (renderedUrl.endsWith("..")) { // WICKET-4401
