You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by jc...@apache.org on 2012/02/26 14:55:32 UTC

git commit: try to make a relative path, problem is still that if that is not possible a full path will be send to the guard.

Updated Branches:
  refs/heads/wicket-1.5.x 645a8e223 -> 15e9d8216


try to make a relative path, problem is still that if that is not
possible a full path will be send to the guard.

Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/15e9d821
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/15e9d821
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/15e9d821

Branch: refs/heads/wicket-1.5.x
Commit: 15e9d82168f114364a4d7bde4f81be42a11aedd9
Parents: 645a8e2
Author: Johan Compagner <jc...@apache.org>
Authored: Sun Feb 26 14:54:39 2012 +0100
Committer: Johan Compagner <jc...@apache.org>
Committed: Sun Feb 26 14:54:39 2012 +0100

----------------------------------------------------------------------
 .../wicket/request/resource/PackageResource.java   |   16 +++++++
 .../wicket/util/tester/WicketTesterTest.java       |   35 +++++++++++++++
 2 files changed, 51 insertions(+), 0 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/wicket/blob/15e9d821/wicket-core/src/main/java/org/apache/wicket/request/resource/PackageResource.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/request/resource/PackageResource.java b/wicket-core/src/main/java/org/apache/wicket/request/resource/PackageResource.java
index 398336a..931fdab 100644
--- a/wicket-core/src/main/java/org/apache/wicket/request/resource/PackageResource.java
+++ b/wicket-core/src/main/java/org/apache/wicket/request/resource/PackageResource.java
@@ -417,6 +417,22 @@ public class PackageResource extends AbstractResource implements IStaticCacheabl
 		if (resourceStream instanceof IFixedLocationResourceStream)
 		{
 			realPath = ((IFixedLocationResourceStream)resourceStream).locationAsString();
+			if (realPath != null)
+			{
+				int index = realPath.indexOf(path);
+				if (index != -1)
+				{
+					realPath = realPath.substring(index);
+				}
+				else
+					// TODO just fall back on the full path without a scope..
+					return guard.accept(null, realPath);
+			}
+			else
+			{
+				realPath = path;
+			}
+
 		}
 		return guard.accept(scope, realPath);
 	}

http://git-wip-us.apache.org/repos/asf/wicket/blob/15e9d821/wicket-core/src/test/java/org/apache/wicket/util/tester/WicketTesterTest.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/util/tester/WicketTesterTest.java b/wicket-core/src/test/java/org/apache/wicket/util/tester/WicketTesterTest.java
index 59ce896..996617c 100644
--- a/wicket-core/src/test/java/org/apache/wicket/util/tester/WicketTesterTest.java
+++ b/wicket-core/src/test/java/org/apache/wicket/util/tester/WicketTesterTest.java
@@ -835,6 +835,7 @@ public class WicketTesterTest extends WicketTestCase
 	{
 		try
 		{
+			// todo, should there be a better check? because this call already fails..
 			tester.startPage(BlockedResourceLinkPage.class);
 
 			TagTester linkTag = TagTester.createTagByAttribute(tester.getLastResponseAsString(),
@@ -855,6 +856,40 @@ public class WicketTesterTest extends WicketTestCase
 		// assertNull(getRequestCodingStrategy());
 	}
 
+	/**
+	 * Test that clickLink on a ResourceLink with a ResourceReference on it works.
+	 * 
+	 * <p>
+	 * See also WICKET-280 Allow to access html resources
+	 * </p>
+	 */
+	@Test
+	public void clickResourceLinkWithSomeCommaAppendedUrl()
+	{
+		try
+		{
+			// todo, should there be a better check? because this call already fails..
+			tester.startPage(BlockedResourceLinkPage.class);
+
+			TagTester linkTag = TagTester.createTagByAttribute(tester.getLastResponseAsString(),
+				"wicket:id", "link");
+			String url = linkTag.getAttribute("href");
+			url = url.replace("../", "wicket/");
+			url += ",xml";
+			tester.executeUrl(url);
+			fail("Accessing " + BlockedResourceLinkPage.class + " should have raised a " +
+				PackageResourceBlockedException.class);
+		}
+		catch (PackageResourceBlockedException e)
+		{
+// e.printStackTrace();
+		}
+
+		tester.startPage(MockResourceLinkPage.class);
+		tester.clickLink("link");
+		// assertNull(getRequestCodingStrategy());
+	}
+
 // IRequestTargetUrlCodingStrategy getRequestCodingStrategy()
 // {
 // String relativePath = tester.getApplication().getWicketFilter().getRelativePath(