1 package com.atlassian.core.filters;
2
3 import javax.servlet.*;
4 import javax.servlet.http.HttpServletResponse;
5 import javax.servlet.http.HttpServletRequest;
6 import java.io.IOException;
7 import java.util.Date;
8
9 public class ExpiresFilter extends AbstractHttpFilter
10 {
11 private int expiryTimeInSeconds = 0;
12
13 public void init(FilterConfig filterConfig) throws ServletException
14 {
15 super.init(filterConfig);
16 String str = filterConfig.getInitParameter("expiryTimeInSeconds");
17 if (str != null)
18 {
19 try
20 {
21 expiryTimeInSeconds = Integer.parseInt(str);
22 }
23 catch (NumberFormatException nfe)
24 {
25 throw new ServletException("'" + str + "' is not a valid integer.", nfe);
26 }
27 }
28 if (System.getProperty("atlassian.disable.caches","false").equals("true"))
29 {
30 expiryTimeInSeconds = 0;
31 }
32 }
33
34 public void doFilter(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) throws IOException, ServletException
35 {
36 if (expiryTimeInSeconds > 0)
37 {
38 response.setDateHeader("Expires", new Date().getTime() + expiryTimeInSeconds * 1000);
39 }
40 filterChain.doFilter(request, response);
41 }
42 }