-
Bug
-
Resolution: Fixed
-
Minor
-
3.6.4
-
-
Yes
-
Empty show more show less
-
Yes
If we use the BrowserCachePolicy Never Firefox 3 still caches the page for a short amount of time. If we add "no-store" value for the Cache-Control header Firefox does no longer cache the page.
Our code looks like this:
public void processCacheRequest(HttpServletRequest request, HttpServletResponse response, FilterChain chain, Cache cache, CachePolicyResult cachePolicyResult) throws IOException, ServletException { BrowserCachePolicy browserCachePolicy = this.getCacheConfiguration().getBrowserCachePolicy(); BrowserCachePolicyResult clientCacheResult = browserCachePolicy.canCacheOnClient(cachePolicyResult); if (clientCacheResult.getExpirationDate() < 0) { response.setHeader("Pragma", "no-cache"); response.setHeader("Cache-Control", "no-cache, no-store"); response.setDateHeader("Expires", 0L); } else { final long maxAgeSeconds = (clientCacheResult.getExpirationDate() - System.currentTimeMillis()) / 1000; response.setHeader("Pragma", ""); response.setHeader("Cache-Control", "max-age=" + maxAgeSeconds + ", public"); response.setDateHeader("Expires", clientCacheResult.getExpirationDate()); } }
We haven't yet tested with other browsers.
There are some other issues we have with SetExpirationHeaders:
- it tests for BrowserCachePolicyResult identity instead of using the return value of #getExpirationDate
- it sets the Expires header twice, to two different values
I'll attach a patch later this day.
Acceptance criteria
- is related to
-
MAGNOLIA-2675 "Pragma: no-cache" header's case is wrong
- Closed