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

Reply via email to