]> WPIA git - gigi.git/commitdiff
ADD: expires headers.
authorFelix Dörre <felix@dogcraft.de>
Mon, 9 Feb 2015 00:41:14 +0000 (01:41 +0100)
committerFelix Dörre <felix@dogcraft.de>
Mon, 9 Feb 2015 00:41:14 +0000 (01:41 +0100)
src/org/cacert/gigi/Launcher.java

index ff4b9b6e7b1aa97ba4f56a8e81155c7e63f15af9..a7ba8a17bde3511a10b58ca5e0862315267d60ed 100644 (file)
@@ -25,6 +25,7 @@ import org.cacert.gigi.email.EmailProvider;
 import org.cacert.gigi.natives.SetUID;
 import org.cacert.gigi.util.CipherInfo;
 import org.cacert.gigi.util.ServerConstants;
+import org.eclipse.jetty.http.HttpHeader;
 import org.eclipse.jetty.http.HttpVersion;
 import org.eclipse.jetty.server.Connector;
 import org.eclipse.jetty.server.Handler;
@@ -194,8 +195,7 @@ public class Launcher {
     }
 
     private static ContextHandler generateGigiServletContext(ServletHolder webAppServlet) {
-        final ResourceHandler rh = new ResourceHandler();
-        rh.setEtags(true);
+        final ResourceHandler rh = generateResourceHandler();
         rh.setResourceBase("static/www");
 
         HandlerWrapper hw = new PolicyRedirector();
@@ -220,8 +220,7 @@ public class Launcher {
     }
 
     private static Handler generateStaticContext() {
-        final ResourceHandler rh = new ResourceHandler();
-        rh.setEtags(true);
+        final ResourceHandler rh = generateResourceHandler();
         rh.setResourceBase("static/static");
 
         ContextHandler ch = new ContextHandler();
@@ -233,6 +232,19 @@ public class Launcher {
         return ch;
     }
 
+    private static ResourceHandler generateResourceHandler() {
+        ResourceHandler rh = new ResourceHandler() {
+
+            @Override
+            public void handle(String target, org.eclipse.jetty.server.Request baseRequest, javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) throws IOException, javax.servlet.ServletException {
+                response.setDateHeader(HttpHeader.EXPIRES.asString(), System.currentTimeMillis() + 1000L * 60 * 60 * 24 * 7);
+                super.handle(target, baseRequest, request, response);
+            }
+        };
+        rh.setEtags(true);
+        return rh;
+    }
+
     private static Handler generateAPIContext() {
         ServletContextHandler sch = new ServletContextHandler();