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 = RequestParameterServletFilter.class.getName() + ".CALLED";
39 public final static String REQUEST_PARAM_RESPONSE_WRAPPED = RequestParameterServletFilter.class.getName() + ".WRAPPED";
40
41 public RequestParameterServletFilter()
42 {
43 }
44
45 public void init(FilterConfig filterConfig)
46 {
47 }
48
49 public void doFilter(ServletRequest servletRequest,
50 ServletResponse servletResponse,
51 FilterChain filterChain) throws IOException, ServletException
52 {
53 if (servletResponse instanceof HttpServletResponse)
54 {
55 HttpServletRequest httpServletRequest = (HttpServletRequest) servletRequest;
56 if (!Boolean.TRUE.equals(httpServletRequest.getAttribute(REQUEST_PARAM_FILTER_CALLED)))
57 {
58 httpServletRequest.setAttribute(REQUEST_PARAM_FILTER_CALLED, Boolean.TRUE);
59 servletResponse = new RequestParameterResponseWrapper((HttpServletResponse) servletResponse);
60 }
61 }
62
63 filterChain.doFilter(servletRequest, servletResponse);
64 }
65
66 public void destroy()
67 {
68 }
69 }