give the jetty server JSESSION a unique ID to prevent conflicts

Project: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/repo
Commit: 
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/commit/d432810f
Tree: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/tree/d432810f
Diff: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/diff/d432810f

Branch: refs/heads/master
Commit: d432810fd21b2d2e75121657c78f36361d1a62cb
Parents: a20f85b
Author: Alex Heneveld <[email protected]>
Authored: Sun Sep 20 17:16:23 2015 +0100
Committer: Alex Heneveld <[email protected]>
Committed: Sun Sep 20 17:43:40 2015 -0500

----------------------------------------------------------------------
 .../java/org/apache/brooklyn/launcher/BrooklynWebServer.java   | 6 ++++++
 1 file changed, 6 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/d432810f/usage/launcher/src/main/java/org/apache/brooklyn/launcher/BrooklynWebServer.java
----------------------------------------------------------------------
diff --git 
a/usage/launcher/src/main/java/org/apache/brooklyn/launcher/BrooklynWebServer.java
 
b/usage/launcher/src/main/java/org/apache/brooklyn/launcher/BrooklynWebServer.java
index 5d58181..50f0a8c 100644
--- 
a/usage/launcher/src/main/java/org/apache/brooklyn/launcher/BrooklynWebServer.java
+++ 
b/usage/launcher/src/main/java/org/apache/brooklyn/launcher/BrooklynWebServer.java
@@ -39,6 +39,7 @@ import javax.servlet.DispatcherType;
 
 import org.eclipse.jetty.server.Connector;
 import org.eclipse.jetty.server.Server;
+import org.eclipse.jetty.server.SessionManager;
 import org.eclipse.jetty.server.nio.SelectChannelConnector;
 import org.eclipse.jetty.server.ssl.SslSelectChannelConnector;
 import org.eclipse.jetty.servlet.FilterHolder;
@@ -588,6 +589,11 @@ public class BrooklynWebServer {
         boolean isRoot = cleanPathSpec.isEmpty();
 
         WebAppContext context = new WebAppContext();
+        // use a unique session ID to prevent interference with other web apps 
on same server (esp for localhost);
+        // it might be better to make this brooklyn-only or base on the 
management-plane ID;
+        // but i think it actually *is* per-server instance, since we don't 
cache sessions server-side,
+        // so i think this is write. [Alex 2015-09] 
+        context.setInitParameter(SessionManager.__SessionCookieProperty, 
SessionManager.__DefaultSessionCookie+"_"+"BROOKLYN"+Identifiers.makeRandomId(6));
         
context.setAttribute(BrooklynServiceAttributes.BROOKLYN_MANAGEMENT_CONTEXT, 
managementContext);
         for (Map.Entry<String, Object> attributeEntry : attributes.entrySet()) 
{
             context.setAttribute(attributeEntry.getKey(), 
attributeEntry.getValue());

Reply via email to