From af18ad9f20634ee4479954788acd8c054db808dc Mon Sep 17 00:00:00 2001 From: =?utf8?q?Felix=20D=C3=B6rre?= Date: Fri, 20 Jun 2014 20:31:59 +0200 Subject: [PATCH] Adding a "static" handler for serving content in /static --- src/org/cacert/gigi/Launcher.java | 29 +++++++++++++++++++++++++---- 1 file changed, 25 insertions(+), 4 deletions(-) diff --git a/src/org/cacert/gigi/Launcher.java b/src/org/cacert/gigi/Launcher.java index d0c9a44c..1d971654 100644 --- a/src/org/cacert/gigi/Launcher.java +++ b/src/org/cacert/gigi/Launcher.java @@ -14,12 +14,16 @@ import javax.net.ssl.TrustManagerFactory; import org.cacert.gigi.natives.SetUID; import org.eclipse.jetty.server.Connector; +import org.eclipse.jetty.server.Handler; import org.eclipse.jetty.server.HttpConfiguration; import org.eclipse.jetty.server.HttpConnectionFactory; import org.eclipse.jetty.server.SecureRequestCustomizer; import org.eclipse.jetty.server.Server; import org.eclipse.jetty.server.ServerConnector; import org.eclipse.jetty.server.SslConnectionFactory; +import org.eclipse.jetty.server.handler.ContextHandler; +import org.eclipse.jetty.server.handler.HandlerList; +import org.eclipse.jetty.server.handler.ResourceHandler; import org.eclipse.jetty.servlet.ServletContextHandler; import org.eclipse.jetty.servlet.ServletHolder; import org.eclipse.jetty.util.log.Log; @@ -42,10 +46,11 @@ public class Launcher { connector.setHost("127.0.0.1"); connector.setPort(443); s.setConnectors(new Connector[]{connector}); - ServletContextHandler sh = new ServletContextHandler( - ServletContextHandler.SESSIONS); - s.setHandler(sh); - sh.addServlet(new ServletHolder(new Gigi()), "/*"); + + HandlerList hl = new HandlerList(); + hl.setHandlers(new Handler[]{generateStaticContext(), + generateGigiContext()}); + s.setHandler(hl); s.start(); if (connector.getPort() <= 1024 && !System.getProperty("os.name").toLowerCase().contains("win")) { @@ -56,6 +61,22 @@ public class Launcher { } } + private static ServletContextHandler generateGigiContext() { + ServletContextHandler servlet = new ServletContextHandler( + ServletContextHandler.SESSIONS); + servlet.addServlet(new ServletHolder(new Gigi()), "/*"); + return servlet; + } + + private static ContextHandler generateStaticContext() { + ResourceHandler rh = new ResourceHandler(); + rh.setResourceBase("static"); + ContextHandler ch = new ContextHandler(); + ch.setHandler(rh); + ch.setContextPath("/static"); + return ch; + } + private static SslContextFactory generateSSLContextFactory() throws NoSuchAlgorithmException, KeyStoreException, IOException, CertificateException, FileNotFoundException { -- 2.39.2