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());
