From 9a7743c9a825639dd3e1df7673c097ce9e158584 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Felix=20D=C3=B6rre?= Date: Fri, 18 Jul 2014 20:59:30 +0200 Subject: [PATCH] Split session validity context between "www" and "secure" --- src/org/cacert/gigi/Launcher.java | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/src/org/cacert/gigi/Launcher.java b/src/org/cacert/gigi/Launcher.java index 5d0acb6d..f34a05e5 100644 --- a/src/org/cacert/gigi/Launcher.java +++ b/src/org/cacert/gigi/Launcher.java @@ -58,7 +58,7 @@ public class Launcher { s.setConnectors(new Connector[] { connector }); HandlerList hl = new HandlerList(); - hl.setHandlers(new Handler[] { generateStaticContext(), generateGigiContext(conf.getMainProps()), + hl.setHandlers(new Handler[] { generateStaticContext(), generateGigiContexts(conf.getMainProps()), generateAPIContext() }); s.setHandler(hl); s.start(); @@ -123,7 +123,20 @@ public class Launcher { }; } - private static ContextHandler generateGigiContext(Properties conf) { + private static Handler generateGigiContexts(Properties conf) { + ServletHolder webAppServlet = new ServletHolder(new Gigi(conf)); + + ContextHandler ch = generateGigiServletContext(webAppServlet); + ch.setVirtualHosts(new String[] { ServerConstants.getWwwHostName() }); + ContextHandler chSecure = generateGigiServletContext(webAppServlet); + chSecure.setVirtualHosts(new String[] { ServerConstants.getSecureHostName() }); + + HandlerList hl = new HandlerList(); + hl.setHandlers(new Handler[] { ch, chSecure }); + return hl; + } + + private static ContextHandler generateGigiServletContext(ServletHolder webAppServlet) { final ResourceHandler rh = new ResourceHandler(); rh.setResourceBase("static/www"); @@ -132,7 +145,7 @@ public class Launcher { ServletContextHandler servlet = new ServletContextHandler(ServletContextHandler.SESSIONS); servlet.setInitParameter(SessionManager.__SessionCookieProperty, "CACert-Session"); - servlet.addServlet(new ServletHolder(new Gigi(conf)), "/*"); + servlet.addServlet(webAppServlet, "/*"); ErrorPageErrorHandler epeh = new ErrorPageErrorHandler(); epeh.addErrorPage(404, "/error"); servlet.setErrorHandler(epeh); @@ -141,9 +154,7 @@ public class Launcher { hl.setHandlers(new Handler[] { hw, servlet }); ContextHandler ch = new ContextHandler(); - ch.setVirtualHosts(new String[] { ServerConstants.getWwwHostName(), ServerConstants.getSecureHostName() }); ch.setHandler(hl); - return ch; } -- 2.39.2