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