View Javadoc

1   package org.springframework.security.ui;
2   
3   import org.apache.commons.logging.Log;
4   import org.apache.commons.logging.LogFactory;
5   import org.springframework.core.Ordered;
6   
7   
8   import javax.servlet.http.HttpServletRequest;
9   import javax.servlet.http.HttpServletResponse;
10  import javax.servlet.ServletException;
11  import javax.servlet.FilterChain;
12  import javax.servlet.ServletResponse;
13  import javax.servlet.FilterConfig;
14  import javax.servlet.ServletRequest;
15  import javax.servlet.Filter;
16  import java.io.IOException;
17  
18  /**
19   * Implements Ordered interface as required by security namespace configuration and implements unused filter
20   * lifecycle methods and performs casting of request and response to http versions in doFilter method.
21   *
22   * @author Luke Taylor
23   * @version $Id: SpringSecurityFilter.java 2985 2008-04-22 22:21:20Z luke_t $
24   */
25  public abstract class SpringSecurityFilter implements Filter, Ordered {
26      protected final Log logger = LogFactory.getLog(this.getClass());
27      
28      /**
29       * Does nothing. We use IoC container lifecycle services instead.
30       *
31       * @param filterConfig ignored
32       * @throws ServletException ignored
33       */
34      public final void init(FilterConfig filterConfig) throws ServletException {
35      }
36  
37      /**
38       * Does nothing. We use IoC container lifecycle services instead.
39       */
40      public final void destroy() {
41      }
42  
43      public final void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
44          // Do we really need the checks on the types in practice ?
45          if (!(request instanceof HttpServletRequest)) {
46              throw new ServletException("Can only process HttpServletRequest");
47          }
48  
49          if (!(response instanceof HttpServletResponse)) {
50              throw new ServletException("Can only process HttpServletResponse");
51          }
52  
53          doFilterHttp((HttpServletRequest)request, (HttpServletResponse)response, chain);
54      }
55  
56      protected abstract void doFilterHttp(HttpServletRequest request, HttpServletResponse response, FilterChain chain) throws IOException, ServletException;
57  
58      public String toString() {
59          return getClass().getName() + "[ order=" + getOrder() + "; ]";
60      }
61  }