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)