Updated Branches:
  refs/heads/wicket-1.5.x 73d89718b -> 01983f758

WICKET-4816 Handling of semicolons in form action URLs


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

Branch: refs/heads/wicket-1.5.x
Commit: 01983f75856a327e9e475e88eae84dded8a10a05
Parents: 73d8971
Author: Martin Tzvetanov Grigorov <[email protected]>
Authored: Wed Oct 17 14:27:34 2012 +0200
Committer: Martin Tzvetanov Grigorov <[email protected]>
Committed: Wed Oct 17 14:27:34 2012 +0200

----------------------------------------------------------------------
 .../org/apache/wicket/util/string/Strings.java     |   11 ++++++-----
 .../org/apache/wicket/util/string/StringsTest.java |    6 ++++++
 2 files changed, 12 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/wicket/blob/01983f75/wicket-util/src/main/java/org/apache/wicket/util/string/Strings.java
----------------------------------------------------------------------
diff --git 
a/wicket-util/src/main/java/org/apache/wicket/util/string/Strings.java 
b/wicket-util/src/main/java/org/apache/wicket/util/string/Strings.java
index 95af9e9..15753e9 100755
--- a/wicket-util/src/main/java/org/apache/wicket/util/string/Strings.java
+++ b/wicket-util/src/main/java/org/apache/wicket/util/string/Strings.java
@@ -22,6 +22,7 @@ import java.security.AccessController;
 import java.security.PrivilegedAction;
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Locale;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
@@ -248,7 +249,7 @@ public final class Strings
         * 
         * @param s
         *            The characters to escape
-        * @see Strings#escapeMarkup(String, boolean)
+        * @see Strings#escapeMarkup(CharSequence, boolean)
         * @return The escaped string
         */
        public static CharSequence escapeMarkup(final CharSequence s)
@@ -903,19 +904,19 @@ public final class Strings
         */
        public static String stripJSessionId(final String url)
        {
-               if (url == null)
+               if (Strings.isEmpty(url))
                {
-                       return null;
+                       return url;
                }
 
                // http://.../abc;jsessionid=...?param=...
-               int ixSemiColon = url.indexOf(";");
+               int ixSemiColon = 
url.toLowerCase(Locale.ENGLISH).indexOf(";jsessionid=");
                if (ixSemiColon == -1)
                {
                        return url;
                }
 
-               int ixQuestionMark = url.indexOf("?");
+               int ixQuestionMark = url.indexOf('?');
                if (ixQuestionMark == -1)
                {
                        // no query paramaters; cut off at ";"

http://git-wip-us.apache.org/repos/asf/wicket/blob/01983f75/wicket-util/src/test/java/org/apache/wicket/util/string/StringsTest.java
----------------------------------------------------------------------
diff --git 
a/wicket-util/src/test/java/org/apache/wicket/util/string/StringsTest.java 
b/wicket-util/src/test/java/org/apache/wicket/util/string/StringsTest.java
index 4c45e86..f074692 100644
--- a/wicket-util/src/test/java/org/apache/wicket/util/string/StringsTest.java
+++ b/wicket-util/src/test/java/org/apache/wicket/util/string/StringsTest.java
@@ -77,6 +77,12 @@ public class StringsTest extends Assert
                assertEquals(url + "?param", Strings.stripJSessionId(url + 
";jsessionid=12345?param"));
                assertEquals(url + "?param=a;b",
                        Strings.stripJSessionId(url + 
";jsessionid=12345?param=a;b"));
+
+               // WICKET-4816
+               assertEquals(url + ";a=b;c=d",
+                               Strings.stripJSessionId(url + 
";a=b;c=d;jsessionid=12345"));
+               assertEquals(url + ";a=b;c=d?param=a;b",
+                               Strings.stripJSessionId(url + 
";a=b;c=d;jsessionid=12345?param=a;b"));
        }
 
        /**

Reply via email to