Updated Branches: refs/heads/master 9de66fbf5 -> 81165d82d
WICKET-4873 Support different session id parameter Project: http://git-wip-us.apache.org/repos/asf/wicket/repo Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/81165d82 Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/81165d82 Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/81165d82 Branch: refs/heads/master Commit: 81165d82d3c3daa830a8dd3f9c4fd78734e0c002 Parents: 9de66fb Author: Martin Tzvetanov Grigorov <[email protected]> Authored: Tue Nov 27 10:58:02 2012 +0100 Committer: Martin Tzvetanov Grigorov <[email protected]> Committed: Tue Nov 27 10:58:56 2012 +0100 ---------------------------------------------------------------------- .../org/apache/wicket/util/string/Strings.java | 16 ++++++++++++++- 1 files changed, 15 insertions(+), 1 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/wicket/blob/81165d82/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 27a9987..c04e1fb 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 @@ -64,6 +64,20 @@ public final class Strings private static final String[] NO_STRINGS = new String[0]; + /** + * The name of the parameter used to keep the session id. + * The Servlet specification mandates <em>jsessionid</em> but the web containers + * provide ways to set a custom one, e.g. <em>sid</em>. + * Since Wicket doesn't have access to the web container internals the name should be set explicitly. + */ + public static final String SESSION_ID_PARAM_NAME = System.getProperty("wicket.jsessionid.name", "jsessionid"); + + /** + * Constructs something like <em>;jsessionid=</em>. This is what {@linkplain Strings#stripJSessionId(String)} + * actually uses. + */ + private static final String SESSION_ID_PARAM = ';' + SESSION_ID_PARAM_NAME + '='; + static { LINE_SEPARATOR = AccessController.doPrivileged(new PrivilegedAction<String>() @@ -913,7 +927,7 @@ public final class Strings } // http://.../abc;jsessionid=...?param=... - int ixSemiColon = url.toLowerCase(Locale.ENGLISH).indexOf(";jsessionid="); + int ixSemiColon = url.toLowerCase(Locale.ENGLISH).indexOf(SESSION_ID_PARAM); if (ixSemiColon == -1) { return url;
