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.lib;
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
31
32
33
34 public abstract class CompoundFilter implements Filter
35 {
36 private final Filter filter1;
37 private final Filter filter2;
38
39 public CompoundFilter(Filter filter1, Filter filter2)
40 {
41 this.filter1 = filter1;
42 this.filter2 = filter2;
43 }
44
45 public void init(FilterConfig filterConfig) throws ServletException
46 {
47 filter1.init(filterConfig);
48 filter2.init(filterConfig);
49 }
50
51 public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse,
52 final FilterChain filterChain) throws IOException, ServletException
53 {
54 FilterChain chain = new FilterChain()
55 {
56 public void doFilter(ServletRequest req, ServletResponse rsp) throws IOException, ServletException
57 {
58 filter2.doFilter(req, rsp, filterChain);
59 }
60
61 };
62
63 filter1.doFilter(servletRequest, servletResponse, chain);
64 }
65
66 public void destroy()
67 {
68 filter2.destroy();
69 filter1.destroy();
70 }
71 }