@Test public void mappedCacheConfigurationOverridesGlobal() throws Exception { Properties mappings = new Properties(); mappings.setProperty("*/*handle.vm", "-1"); // was **/*handle.vm WebContentInterceptor interceptor = new WebContentInterceptor(); interceptor.setCacheSeconds(10); interceptor.setCacheMappings(mappings); // request.setRequestURI("http://localhost:7070/example/adminhandle.vm"); request.setRequestURI("example/adminhandle.vm"); interceptor.preHandle(request, response, null); Iterable<String> cacheControlHeaders = response.getHeaders("Cache-Control"); assertThat(cacheControlHeaders, Matchers.emptyIterable()); // request.setRequestURI("http://localhost:7070/example/bingo.html"); request.setRequestURI("example/bingo.html"); interceptor.preHandle(request, response, null); cacheControlHeaders = response.getHeaders("Cache-Control"); assertThat(cacheControlHeaders, Matchers.hasItem("max-age=10")); }
@SuppressWarnings("deprecation") @Test public void http10CachingConfigAndSpecificMapping() throws Exception { WebContentInterceptor interceptor = new WebContentInterceptor(); interceptor.setCacheSeconds(0); interceptor.setUseExpiresHeader(true); interceptor.setAlwaysMustRevalidate(true); Properties mappings = new Properties(); mappings.setProperty("*/*.cache.html", "10"); // was **/*.cache.html interceptor.setCacheMappings(mappings); // request.setRequestURI("http://example.org/foo/page.html"); request.setRequestURI("foo/page.html"); interceptor.preHandle(request, response, null); Iterable<String> expiresHeaders = response.getHeaders("Expires"); assertThat(expiresHeaders, Matchers.iterableWithSize(1)); Iterable<String> cacheControlHeaders = response.getHeaders("Cache-Control"); assertThat(cacheControlHeaders, Matchers.contains("no-cache", "no-store")); Iterable<String> pragmaHeaders = response.getHeaders("Pragma"); assertThat(pragmaHeaders, Matchers.contains("no-cache")); // request.setRequestURI("http://example.org/page.cache.html"); request = new MockHttpServletRequest("GET", "foo/page.cache.html"); response = new MockHttpServletResponse(); interceptor.preHandle(request, response, null); expiresHeaders = response.getHeaders("Expires"); assertThat(expiresHeaders, Matchers.iterableWithSize(1)); cacheControlHeaders = response.getHeaders("Cache-Control"); assertThat(cacheControlHeaders, Matchers.contains("max-age=10, must-revalidate")); }
@Override protected void addInterceptors(InterceptorRegistry registry) { WebContentInterceptor interceptor = new WebContentInterceptor(); Properties mappings = new Properties(); mappings.put("/", "2592000"); mappings.put("/admin", "-1"); interceptor.setCacheMappings(mappings); registry.addInterceptor(interceptor); }
@Override public void setCacheMappings(Properties cacheMappings) { super.setCacheMappings(buildInsensitiveProperties(cacheMappings)); }