View Javadoc

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; // don't add expires headers
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  }