Updated Branches: refs/heads/wicket-1.5.x 62fe7c8a6 -> cfe1f842c
WICKET-4345 CryptoMapper does not work for applications having a home page that needs query parameters Project: http://git-wip-us.apache.org/repos/asf/wicket/repo Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/cfe1f842 Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/cfe1f842 Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/cfe1f842 Branch: refs/heads/wicket-1.5.x Commit: cfe1f842c9342feb6147eec9ce805fb968d84fbe Parents: 62fe7c8 Author: Martin Tzvetanov Grigorov <[email protected]> Authored: Wed Jan 18 15:02:56 2012 +0100 Committer: Martin Tzvetanov Grigorov <[email protected]> Committed: Wed Jan 18 15:05:04 2012 +0100 ---------------------------------------------------------------------- .../apache/wicket/request/mapper/CryptoMapper.java | 2 +- .../wicket/request/mapper/CryptoMapperTest.java | 18 +++++++++++++++ 2 files changed, 19 insertions(+), 1 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/wicket/blob/cfe1f842/wicket-core/src/main/java/org/apache/wicket/request/mapper/CryptoMapper.java ---------------------------------------------------------------------- diff --git a/wicket-core/src/main/java/org/apache/wicket/request/mapper/CryptoMapper.java b/wicket-core/src/main/java/org/apache/wicket/request/mapper/CryptoMapper.java index 59b928b..fe595f8 100755 --- a/wicket-core/src/main/java/org/apache/wicket/request/mapper/CryptoMapper.java +++ b/wicket-core/src/main/java/org/apache/wicket/request/mapper/CryptoMapper.java @@ -149,7 +149,7 @@ public class CryptoMapper implements IRequestMapper private Url decryptUrl(final Request request, final Url encryptedUrl) { - if (encryptedUrl.getSegments().isEmpty() && encryptedUrl.getQueryParameters().isEmpty()) + if (encryptedUrl.getSegments().isEmpty()) { return encryptedUrl; } http://git-wip-us.apache.org/repos/asf/wicket/blob/cfe1f842/wicket-core/src/test/java/org/apache/wicket/request/mapper/CryptoMapperTest.java ---------------------------------------------------------------------- diff --git a/wicket-core/src/test/java/org/apache/wicket/request/mapper/CryptoMapperTest.java b/wicket-core/src/test/java/org/apache/wicket/request/mapper/CryptoMapperTest.java index b393407..003b605 100644 --- a/wicket-core/src/test/java/org/apache/wicket/request/mapper/CryptoMapperTest.java +++ b/wicket-core/src/test/java/org/apache/wicket/request/mapper/CryptoMapperTest.java @@ -24,6 +24,7 @@ import org.apache.wicket.request.handler.PageProvider; import org.apache.wicket.request.handler.RenderPageRequestHandler; import org.apache.wicket.request.handler.resource.ResourceReferenceRequestHandler; import org.apache.wicket.request.mapper.parameter.PageParameters; +import org.apache.wicket.util.string.StringValue; import org.apache.wicket.util.tester.DummyHomePage; import org.apache.wicket.util.tester.WicketTester; import org.junit.After; @@ -102,6 +103,23 @@ public class CryptoMapperTest extends AbstractMapperTest } /** + * Verifies that the home page can be reached with non-encrypted query parameters. + * https://issues.apache.org/jira/browse/WICKET-4345 + */ + @Test + public void decryptHomePageWithNonEncryptedQueryParameters() + { + Request request = getRequest(Url.parse("?named1=value1")); + IRequestHandler requestHandler = mapper.mapRequest(request); + assertTrue(requestHandler instanceof RenderPageRequestHandler); + + RenderPageRequestHandler handler = (RenderPageRequestHandler)requestHandler; + assertEquals(tester.getApplication().getHomePage(), handler.getPageClass()); + StringValue queryParam = handler.getPageParameters().get("named1"); + assertEquals("value1", queryParam.toOptionalString()); + } + + /** * Test a failed decrypt, WICKET-4139 */ @Test
