The easiest approach is to simply stop the header entry using the servlet filter. Thus, the configuration of no Spring must be changed, and you will get the correct cache functionality for free.
public class PragmaFilter implements Filter { private static String PRAGMA_HEADER = "Pragma"; @Override public void init(FilterConfig filterConfig) throws ServletException { } @Override public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { chain.doFilter(request, new NoPragmaHttpServletResponseWrapper(response)); } @Override public void destroy() { } private final class NoPragmaHttpServletResponseWrapper extends HttpServletResponseWrapper { private NoPragmaHttpServletResponseWrapper(ServletResponse response) { super((HttpServletResponse) response); } @Override public void addHeader(String name, String value) { if (PRAGMA_HEADER.equals(name)) { return; } super.addHeader(name, value); } @Override public void setHeader(String name, String value) { if (PRAGMA_HEADER.equals(name)) { return; } super.setHeader(name, value); } } }
Scott
source share