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