diff --git a/CHANGELOG b/CHANGELOG index fe781357f5d95f0f957303a7386123976300e183..a6960a485808794fac50e4cb1455d2fc8ed28b8b 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -8,6 +8,8 @@ minerva (12.2.1) stable; urgency=medium privileges (#766) * Bug fix: invalid pubmed identifier could break clicking on element containing it (#764, #765, #769) + * Bug fix: cache for API queries is explicitly disabled - some queries could + be mistakenly cached and the system behaviour might get unstable (#771) -- Piotr Gawron <piotr.gawron@uni.lu> Mon, 1 Apr 2019 17:00:00 +0200 diff --git a/web/src/main/java/lcsb/mapviewer/web/bean/utils/ApiAccessControlFilter.java b/web/src/main/java/lcsb/mapviewer/web/bean/utils/ApiAccessControlFilter.java index 1d490fc98a6a2616d541f423891a4a250628782b..c09fdbea38caab127cab317cf67ac6ba2bfde026 100644 --- a/web/src/main/java/lcsb/mapviewer/web/bean/utils/ApiAccessControlFilter.java +++ b/web/src/main/java/lcsb/mapviewer/web/bean/utils/ApiAccessControlFilter.java @@ -13,7 +13,7 @@ import javax.servlet.http.HttpServletResponse; import org.apache.log4j.Logger; /** - * This filter enables x-frames from another domain if necessary. + * This filter disables caching for API queries. * * @author Piotr Gawron * @@ -33,7 +33,12 @@ public class ApiAccessControlFilter implements Filter { public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException { HttpServletResponse response = (HttpServletResponse) res; + //caching on Safari response.addHeader("Vary", "*"); + // generic cache prevent mechanism + response.addHeader("Cache-Control", "no-cache, no-store, must-revalidate"); + response.addHeader("Pragma", "no-cache"); + response.addHeader("Expires", "0"); chain.doFilter(req, response); }