View Javadoc

1   package com.atlassian.plugins.rest.module.servlet;
2   
3   import javax.servlet.Filter;
4   import javax.servlet.FilterChain;
5   import javax.servlet.FilterConfig;
6   import javax.servlet.ServletException;
7   import javax.servlet.ServletRequest;
8   import javax.servlet.ServletResponse;
9   import javax.servlet.http.HttpServletRequest;
10  import javax.servlet.http.HttpServletResponse;
11  import java.io.IOException;
12  
13  public class RestServletUtilsUpdaterFilter implements Filter {
14  
15      public void init(FilterConfig filterConfig) throws ServletException {
16      }
17  
18      protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) throws IOException, ServletException {
19          // This sucks, I hate relying on ThreadLocals but we have to do that in order to use the SAL UserManager API. 
20          ServletUtils.setHttpServletRequest(request);
21          try {
22              filterChain.doFilter(request, response);
23          } finally {
24              ServletUtils.setHttpServletRequest(null);
25          }
26      }
27  
28      /**
29       * Simply calls {@link #doFilterInternal(HttpServletRequest, HttpServletResponse, FilterChain)}
30       *
31       * @see #doFilterInternal(HttpServletRequest, HttpServletResponse, FilterChain)
32       */
33      public final void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
34          doFilterInternal((HttpServletRequest) request, (HttpServletResponse) response, chain);
35      }
36  
37      public void destroy() {
38      }
39  }