From fa4bfa729d48b33c937dc6f440aa34334a90f276 Mon Sep 17 00:00:00 2001 From: Athou Date: Sun, 26 Oct 2014 17:48:25 +0100 Subject: [PATCH] fix favicon caching --- .../com/commafeed/CommaFeedApplication.java | 20 +++++++++++++++++-- .../commafeed/frontend/resource/FeedREST.java | 3 +-- 2 files changed, 19 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/commafeed/CommaFeedApplication.java b/src/main/java/com/commafeed/CommaFeedApplication.java index ff90d4cf..f15ec6c3 100644 --- a/src/main/java/com/commafeed/CommaFeedApplication.java +++ b/src/main/java/com/commafeed/CommaFeedApplication.java @@ -9,11 +9,17 @@ import io.dropwizard.servlets.CacheBustingFilter; import io.dropwizard.setup.Bootstrap; import io.dropwizard.setup.Environment; +import java.io.IOException; import java.util.Date; import java.util.EnumSet; import java.util.concurrent.ScheduledExecutorService; import javax.servlet.DispatcherType; +import javax.servlet.FilterChain; +import javax.servlet.ServletException; +import javax.servlet.ServletRequest; +import javax.servlet.ServletResponse; +import javax.servlet.http.HttpServletRequest; import org.eclipse.jetty.server.session.SessionHandler; @@ -150,8 +156,18 @@ public class CommaFeedApplication extends Application { swaggerConfig.setBasePath("/rest"); // cache configuration - environment.servlets().addFilter("cache-filter", new CacheBustingFilter()) - .addMappingForUrlPatterns(EnumSet.of(DispatcherType.REQUEST), false, "/*"); + // prevent caching on REST resources, except for favicons + environment.servlets().addFilter("cache-filter", new CacheBustingFilter() { + @Override + public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { + String path = ((HttpServletRequest) request).getRequestURI(); + if (path.contains("/feed/favicon")) { + chain.doFilter(request, response); + } else { + super.doFilter(request, response, chain); + } + } + }).addMappingForUrlPatterns(EnumSet.of(DispatcherType.REQUEST), false, "/rest/*"); } public static void main(String[] args) throws Exception { diff --git a/src/main/java/com/commafeed/frontend/resource/FeedREST.java b/src/main/java/com/commafeed/frontend/resource/FeedREST.java index e0723e5c..d7038fa7 100644 --- a/src/main/java/com/commafeed/frontend/resource/FeedREST.java +++ b/src/main/java/com/commafeed/frontend/resource/FeedREST.java @@ -334,8 +334,7 @@ public class FeedREST { CacheControl cacheControl = new CacheControl(); cacheControl.setMaxAge(2592000); - cacheControl.setPrivate(true); - // trying to replicate "public, max-age=2592000" + cacheControl.setPrivate(false); builder.cacheControl(cacheControl); Calendar calendar = Calendar.getInstance();