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")); } /**
