Updated Branches:
  refs/heads/master 03078b223 -> 66bfc8851

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/66bfc885
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/66bfc885
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/66bfc885

Branch: refs/heads/master
Commit: 66bfc8851c0250c02ff6ee0af0f42407a7873ca5
Parents: 03078b2
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:28:09 2012 +0200

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


http://git-wip-us.apache.org/repos/asf/wicket/blob/66bfc885/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 fceb499..27a9987 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;
 
@@ -906,19 +907,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/66bfc885/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