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 2012/02/24 08:44:17 UTC
[2/2] git commit: WICKET-4401 Redirect after sign in with SignInPanel
does not always reach homepage
WICKET-4401 Redirect after sign in with SignInPanel does not always reach homepage
Append slash if the generated url ends with '..'.
Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/19bc50d0
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/19bc50d0
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/19bc50d0
Branch: refs/heads/wicket-1.5.x
Commit: 19bc50d01996ebafa45d974f4274cf5b1f075bfc
Parents: 72b6f63
Author: martin-g <mg...@apache.org>
Authored: Fri Feb 24 08:39:47 2012 +0100
Committer: martin-g <mg...@apache.org>
Committed: Fri Feb 24 08:40:37 2012 +0100
----------------------------------------------------------------------
.../wicket/request/cycle/UrlRendererTest.java | 12 ++++++++++
.../org/apache/wicket/request/UrlRenderer.java | 17 +++++++++++++-
2 files changed, 27 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/wicket/blob/19bc50d0/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 8e30778..4a3f6f7 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
@@ -148,4 +148,16 @@ public class UrlRendererTest extends TestCase
UrlRenderer r1 = new UrlRenderer(new MockWebRequest(Url.parse("?0")));
assertEquals(".", r1.renderUrl(Url.parse("")));
}
+
+ /**
+ * https://issues.apache.org/jira/browse/WICKET-4401
+ *
+ * A Url should not ends with '..' because some web containers do not handle it
+ * properly. Using '../' works better.
+ */
+ public void test13()
+ {
+ UrlRenderer r1 = new UrlRenderer(new MockWebRequest(Url.parse("foo/bar")));
+ assertEquals("../", r1.renderUrl(Url.parse("")));
+ }
}
http://git-wip-us.apache.org/repos/asf/wicket/blob/19bc50d0/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 d636450..f762aef 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
@@ -225,7 +225,6 @@ public class UrlRenderer
}
else
{
-
for (int i = common + 1; i < baseUrlSize; ++i)
{
newSegments.add("..");
@@ -234,7 +233,21 @@ public class UrlRenderer
newSegments.addAll(urlSegments);
String renderedUrl = new Url(newSegments, url.getQueryParameters()).toString();
- return Strings.isEmpty(renderedUrl) ? "." : renderedUrl;
+ String result;
+ if (Strings.isEmpty(renderedUrl))
+ {
+ result = ".";
+ }
+ else if (renderedUrl.endsWith(".."))
+ {
+ // WICKET-4401
+ result = renderedUrl + '/';
+ }
+ else
+ {
+ result = renderedUrl;
+ }
+ return result;
}
}