View Javadoc

1   /*
2    * Licensed to the Apache Software Foundation (ASF) under one
3    * or more contributor license agreements.  See the NOTICE file
4    * distributed with this work for additional information
5    * regarding copyright ownership.  The ASF licenses this file
6    * to you under the Apache License, Version 2.0 (the
7    * "License"); you may not use this file except in compliance
8    * with the License.  You may obtain a copy of the License at
9    *
10   *   http://www.apache.org/licenses/LICENSE-2.0
11   *
12   * Unless required by applicable law or agreed to in writing,
13   * software distributed under the License is distributed on an
14   * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15   * KIND, either express or implied.  See the License for the
16   * specific language governing permissions and limitations
17   * under the License.
18   */
19  
20  package org.apache.myfaces.custom.requestParameterProvider;
21  
22  import java.io.IOException;
23  
24  import javax.servlet.Filter;
25  import javax.servlet.FilterChain;
26  import javax.servlet.FilterConfig;
27  import javax.servlet.ServletException;
28  import javax.servlet.ServletRequest;
29  import javax.servlet.ServletResponse;
30  import javax.servlet.http.HttpServletRequest;
31  import javax.servlet.http.HttpServletResponse;
32  
33  
34  /**
35   * @author Thomas Obereder
36   * @version 30.04.2006 14:38:23
37   * 
38   * Once moved to tomahawk, we can get rid of this filter and add its functionality to the default ExtensionsFilter.
39   */
40  public class RequestParameterServletFilter implements Filter
41  {
42      public final static String REQUEST_PARAM_FILTER_CALLED = RequestParameterServletFilter.class.getName() + ".CALLED";
43      
44      public RequestParameterServletFilter()
45      {
46      }
47  
48      public void init(FilterConfig filterConfig)
49      {
50      }
51  
52      public void doFilter(ServletRequest servletRequest,
53                           ServletResponse servletResponse,
54                           FilterChain filterChain) throws IOException, ServletException
55      {
56          if(servletResponse instanceof HttpServletResponse)
57          {
58              HttpServletRequest httpServletRequest = (HttpServletRequest) servletRequest;
59              if (!Boolean.TRUE.equals(httpServletRequest.getAttribute(REQUEST_PARAM_FILTER_CALLED)))
60              {
61                  httpServletRequest.setAttribute(REQUEST_PARAM_FILTER_CALLED, Boolean.TRUE);
62                  servletResponse = new RequestParameterResponseWrapper((HttpServletResponse) servletResponse);
63              }
64          }
65          
66          filterChain.doFilter(servletRequest, servletResponse);
67      }
68  
69      public void destroy()
70      {
71      }
72  }