1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.opensaml.saml2.metadata.provider;
18
19 import java.util.ArrayList;
20 import java.util.List;
21
22 import org.opensaml.xml.XMLObject;
23 import org.slf4j.Logger;
24 import org.slf4j.LoggerFactory;
25
26
27
28
29
30 public class MetadataFilterChain implements MetadataFilter {
31
32
33 private Logger log = LoggerFactory.getLogger(MetadataFilterChain.class);
34
35
36 private ArrayList<MetadataFilter> filters;
37
38
39
40
41 public MetadataFilterChain() {
42 filters = new ArrayList<MetadataFilter>();
43 }
44
45
46 public final void doFilter(XMLObject xmlObject) throws FilterException {
47 synchronized (filters) {
48 if(filters == null || filters.isEmpty()){
49 log.debug("No filters configured, nothing to do");
50 }
51 for (MetadataFilter filter : filters) {
52 log.debug("Applying filter {}", filter.getClass().getName());
53 filter.doFilter(xmlObject);
54 }
55 }
56 }
57
58
59
60
61
62
63 public List<MetadataFilter> getFilters() {
64 return filters;
65 }
66
67
68
69
70
71
72 public void setFilters(List<MetadataFilter> newFilters) {
73 filters.clear();
74
75 if (newFilters != null) {
76 filters.addAll(newFilters);
77 }
78 }
79 }