1 package com.atlassian.plugin.servlet.filter;
2
3 import java.io.IOException;
4 import java.util.Iterator;
5
6 import javax.servlet.Filter;
7 import javax.servlet.FilterChain;
8 import javax.servlet.ServletException;
9 import javax.servlet.ServletRequest;
10 import javax.servlet.ServletResponse;
11
12
13
14
15
16
17
18 public final class IteratingFilterChain implements FilterChain
19 {
20 private final Iterator<Filter> iterator;
21 private final FilterChain chain;
22
23
24
25
26
27
28
29
30
31 public IteratingFilterChain(Iterator<Filter> iterator, FilterChain chain)
32 {
33 this.iterator = iterator;
34 this.chain = chain;
35 }
36
37 public void doFilter(ServletRequest request, ServletResponse response) throws IOException, ServletException
38 {
39 if (iterator.hasNext())
40 {
41 Filter filter = iterator.next();
42 filter.doFilter(request, response, this);
43 }
44 else
45 {
46 chain.doFilter(request, response);
47 }
48 }
49 }