Repository: wicket
Updated Branches:
  refs/heads/wicket-6.x ae2d5167c -> c0fb5d4b2


WICKET-6131 IndexOutOfBoundsException in 
org.apache.wicket.core.request.mapper.CryptoMapper.decryptEntireUrl


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

Branch: refs/heads/wicket-6.x
Commit: c0fb5d4b2f64160a64186fbd0dcdafcab6e83384
Parents: ae2d516
Author: Martin Tzvetanov Grigorov <[email protected]>
Authored: Tue Mar 29 16:19:01 2016 +0200
Committer: Martin Tzvetanov Grigorov <[email protected]>
Committed: Tue Mar 29 16:19:01 2016 +0200

----------------------------------------------------------------------
 .../core/request/mapper/CryptoMapper.java       |  2 +-
 .../core/request/mapper/CryptoMapperTest.java   | 22 ++++++++++++++++++++
 2 files changed, 23 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/wicket/blob/c0fb5d4b/wicket-core/src/main/java/org/apache/wicket/core/request/mapper/CryptoMapper.java
----------------------------------------------------------------------
diff --git 
a/wicket-core/src/main/java/org/apache/wicket/core/request/mapper/CryptoMapper.java
 
b/wicket-core/src/main/java/org/apache/wicket/core/request/mapper/CryptoMapper.java
index 4d6a89f..833dc67 100755
--- 
a/wicket-core/src/main/java/org/apache/wicket/core/request/mapper/CryptoMapper.java
+++ 
b/wicket-core/src/main/java/org/apache/wicket/core/request/mapper/CryptoMapper.java
@@ -513,7 +513,7 @@ public class CryptoMapper implements IRequestMapperDelegate
                int segNo = 1;
                for (; segNo < encryptedNumberOfSegments; segNo++)
                {
-                       if (segNo > originalNumberOfSegments)
+                       if (segNo >= originalNumberOfSegments)
                        {
                                break;
                        }

http://git-wip-us.apache.org/repos/asf/wicket/blob/c0fb5d4b/wicket-core/src/test/java/org/apache/wicket/core/request/mapper/CryptoMapperTest.java
----------------------------------------------------------------------
diff --git 
a/wicket-core/src/test/java/org/apache/wicket/core/request/mapper/CryptoMapperTest.java
 
b/wicket-core/src/test/java/org/apache/wicket/core/request/mapper/CryptoMapperTest.java
index fce5e0a..7031a1e 100644
--- 
a/wicket-core/src/test/java/org/apache/wicket/core/request/mapper/CryptoMapperTest.java
+++ 
b/wicket-core/src/test/java/org/apache/wicket/core/request/mapper/CryptoMapperTest.java
@@ -191,6 +191,28 @@ public class CryptoMapperTest extends AbstractMapperTest
        }
 
        /**
+        * https://issues.apache.org/jira/browse/WICKET-6131
+        *
+        * Tests that encrypted URLs for bookmarkable pages are decrypted and 
passed to the wrapped mapper.
+        * Extra segments should be ignored.
+        */
+       @Test
+       public void bookmarkablePageDecrypt2()
+       {
+               String encryptedExtraSegments = "/i87b7/i87b7";
+               Request request = 
getRequest(Url.parse(ENCRYPTED_BOOKMARKABLE_URL + encryptedExtraSegments));
+               IRequestHandler requestHandler = mapper.mapRequest(request);
+
+               assertNotNull(requestHandler);
+               requestHandler = unwrapRequestHandlerDelegate(requestHandler);
+
+               assertTrue(requestHandler instanceof RenderPageRequestHandler);
+
+               RenderPageRequestHandler handler = (RenderPageRequestHandler) 
requestHandler;
+               assertEquals(Page2.class, handler.getPageClass());
+       }
+
+       /**
         * Tests that encrypted URLs for bookmarkable pages are decrypted and 
passed to the wrapped mapper when there is more than
         * one cryptomapper installed.
         */

Reply via email to