X-Git-Url: https://code.wpia.club/?a=blobdiff_plain;f=src%2Forg%2Fcacert%2Fgigi%2FLauncher.java;h=f34a05e504a25178e3f9571b2887f83e535548d1;hb=3fb5d9ffc2fddb0c713abf22cfe6583fd1140813;hp=b3c437ed993072afe382412c4a638c42d7c939e8;hpb=bc3ca7a56553d4d2e323618560a8c7f4ceeeec13;p=gigi.git diff --git a/src/org/cacert/gigi/Launcher.java b/src/org/cacert/gigi/Launcher.java index b3c437ed..f34a05e5 100644 --- a/src/org/cacert/gigi/Launcher.java +++ b/src/org/cacert/gigi/Launcher.java @@ -31,6 +31,7 @@ import org.eclipse.jetty.server.handler.ContextHandler; import org.eclipse.jetty.server.handler.HandlerList; import org.eclipse.jetty.server.handler.HandlerWrapper; import org.eclipse.jetty.server.handler.ResourceHandler; +import org.eclipse.jetty.servlet.ErrorPageErrorHandler; import org.eclipse.jetty.servlet.ServletContextHandler; import org.eclipse.jetty.servlet.ServletHolder; import org.eclipse.jetty.util.log.Log; @@ -57,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(); @@ -122,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"); @@ -131,15 +145,16 @@ 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); HandlerList hl = new HandlerList(); hl.setHandlers(new Handler[] { hw, servlet }); ContextHandler ch = new ContextHandler(); - ch.setVirtualHosts(new String[] { ServerConstants.getWwwHostName(), ServerConstants.getSecureHostName() }); ch.setHandler(hl); - return ch; }