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;
 		}
 	}