You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by ad...@apache.org on 2018/09/20 15:14:35 UTC
wicket git commit: WICKET-6588 Under Tomcat (ver. >= 8.5)
BaseWebSocketBehavior can't find session id cookie
Repository: wicket
Updated Branches:
refs/heads/wicket-8.x d334b9a84 -> 122ddac9d
WICKET-6588 Under Tomcat (ver. >= 8.5) BaseWebSocketBehavior can't find
session id cookie
Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/122ddac9
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/122ddac9
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/122ddac9
Branch: refs/heads/wicket-8.x
Commit: 122ddac9dfba6f4fb223ceee94101665fe2ec73d
Parents: d334b9a
Author: Andrea Del Bene <an...@edenviaggi.it>
Authored: Thu Sep 20 16:05:31 2018 +0200
Committer: Andrea Del Bene <an...@edenviaggi.it>
Committed: Thu Sep 20 16:05:31 2018 +0200
----------------------------------------------------------------------
.../apache/wicket/util/cookies/CookieUtils.java | 20 +++++++++++++++++++-
.../protocol/ws/api/BaseWebSocketBehavior.java | 15 ++++++---------
2 files changed, 25 insertions(+), 10 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/wicket/blob/122ddac9/wicket-core/src/main/java/org/apache/wicket/util/cookies/CookieUtils.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/util/cookies/CookieUtils.java b/wicket-core/src/main/java/org/apache/wicket/util/cookies/CookieUtils.java
index a3cfcf6..fc7a639 100644
--- a/wicket-core/src/main/java/org/apache/wicket/util/cookies/CookieUtils.java
+++ b/wicket-core/src/main/java/org/apache/wicket/util/cookies/CookieUtils.java
@@ -17,8 +17,8 @@
package org.apache.wicket.util.cookies;
import javax.servlet.http.Cookie;
-
import org.apache.wicket.markup.html.form.FormComponent;
+import org.apache.wicket.protocol.http.WebApplication;
import org.apache.wicket.protocol.http.servlet.ServletWebRequest;
import org.apache.wicket.request.Response;
import org.apache.wicket.request.cycle.RequestCycle;
@@ -40,6 +40,8 @@ public class CookieUtils
{
private final static Logger log = LoggerFactory.getLogger(CookieUtils.class);
+ private static final String DEFAULT_SESSIONID_COOKIE_NAME = "JSESSIONID";
+
private final CookieDefaults settings;
/**
@@ -258,6 +260,22 @@ public class CookieUtils
return null;
}
+
+
+ /**
+ * Gets the name of the cookie where the session id is stored.
+ *
+ * @param application
+ * The current we application holding the {@link javax.servlet.ServletContext}.
+ *
+ * @return The name set in {@link javax.servlet.SessionCookieConfig} or the default value 'JSESSIONID' if not set
+ */
+ public String getSessionIdCookieName(WebApplication application)
+ {
+ String jsessionCookieName = application.getServletContext().getSessionCookieConfig().getName();
+
+ return jsessionCookieName == null ? DEFAULT_SESSIONID_COOKIE_NAME : jsessionCookieName;
+ }
/**
* Persist/save the data using Cookies.
http://git-wip-us.apache.org/repos/asf/wicket/blob/122ddac9/wicket-native-websocket/wicket-native-websocket-core/src/main/java/org/apache/wicket/protocol/ws/api/BaseWebSocketBehavior.java
----------------------------------------------------------------------
diff --git a/wicket-native-websocket/wicket-native-websocket-core/src/main/java/org/apache/wicket/protocol/ws/api/BaseWebSocketBehavior.java b/wicket-native-websocket/wicket-native-websocket-core/src/main/java/org/apache/wicket/protocol/ws/api/BaseWebSocketBehavior.java
index 6dca08f..f8a6372 100644
--- a/wicket-native-websocket/wicket-native-websocket-core/src/main/java/org/apache/wicket/protocol/ws/api/BaseWebSocketBehavior.java
+++ b/wicket-native-websocket/wicket-native-websocket-core/src/main/java/org/apache/wicket/protocol/ws/api/BaseWebSocketBehavior.java
@@ -16,7 +16,11 @@
*/
package org.apache.wicket.protocol.ws.api;
-import org.apache.wicket.Application;
+import java.util.Map;
+import java.util.Set;
+import javax.servlet.SessionTrackingMode;
+import javax.servlet.http.Cookie;
+import javax.servlet.http.HttpServletRequest;
import org.apache.wicket.Component;
import org.apache.wicket.behavior.Behavior;
import org.apache.wicket.markup.head.IHeaderResponse;
@@ -30,13 +34,6 @@ import org.apache.wicket.util.lang.Generics;
import org.apache.wicket.util.string.Strings;
import org.apache.wicket.util.template.PackageTextTemplate;
-import java.util.Map;
-import java.util.Set;
-
-import javax.servlet.SessionTrackingMode;
-import javax.servlet.http.Cookie;
-import javax.servlet.http.HttpServletRequest;
-
/**
* A behavior that contributes {@link WicketWebSocketJQueryResourceReference}
*/
@@ -173,7 +170,7 @@ public class BaseWebSocketBehavior extends Behavior
else if (containerRequest instanceof HttpServletRequest)
{
CookieUtils cookieUtils = new CookieUtils();
- final String jsessionCookieName = application.getServletContext().getSessionCookieConfig().getName();
+ final String jsessionCookieName = cookieUtils.getSessionIdCookieName(application);
final Cookie jsessionid = cookieUtils.getCookie(jsessionCookieName);
HttpServletRequest httpServletRequest = (HttpServletRequest) containerRequest;
if (jsessionid == null || httpServletRequest.isRequestedSessionIdValid() == false)