1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 package org.apache.myfaces.orchestra.requestParameterProvider;
21
22 import javax.servlet.Filter;
23 import javax.servlet.FilterChain;
24 import javax.servlet.FilterConfig;
25 import javax.servlet.ServletException;
26 import javax.servlet.ServletRequest;
27 import javax.servlet.ServletResponse;
28 import javax.servlet.http.HttpServletRequest;
29 import javax.servlet.http.HttpServletResponse;
30 import java.io.IOException;
31
32
33
34
35
36 public class RequestParameterServletFilter implements Filter
37 {
38 public final static String REQUEST_PARAM_FILTER_CALLED =
39 RequestParameterServletFilter.class.getName() + ".CALLED";
40 public final static String REQUEST_PARAM_RESPONSE_WRAPPED =
41 RequestParameterServletFilter.class.getName() + ".WRAPPED";
42
43 public RequestParameterServletFilter()
44 {
45 }
46
47 public void init(FilterConfig filterConfig)
48 {
49 }
50
51 public void doFilter(ServletRequest servletRequest,
52 ServletResponse servletResponse,
53 FilterChain filterChain) throws IOException, ServletException
54 {
55 if (servletResponse instanceof HttpServletResponse)
56 {
57 HttpServletRequest httpServletRequest = (HttpServletRequest) servletRequest;
58 if (!Boolean.TRUE.equals(httpServletRequest.getAttribute(REQUEST_PARAM_FILTER_CALLED)))
59 {
60 httpServletRequest.setAttribute(REQUEST_PARAM_FILTER_CALLED, Boolean.TRUE);
61 servletResponse = new RequestParameterResponseWrapper((HttpServletResponse) servletResponse);
62 }
63 }
64
65 filterChain.doFilter(servletRequest, servletResponse);
66 }
67
68 public void destroy()
69 {
70 }
71 }