1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
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
36
37
38
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 }