1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 package info.magnolia.cors;
35
36 import info.magnolia.cms.filters.MgnlFilter;
37 import info.magnolia.cms.util.SimpleUrlPattern;
38 import info.magnolia.context.WebContext;
39
40 import java.util.List;
41 import java.util.Optional;
42
43 import javax.inject.Inject;
44 import javax.inject.Provider;
45 import javax.servlet.http.HttpServletRequest;
46
47
48
49
50 public class SelfConfiguredCorsFilter extends AbstractCorsFilter implements CorsConfiguration {
51
52 private final Provider<WebContext> webContextProvider;
53
54 private final DefaultCorsConfigurationConfiguration">DefaultCorsConfiguration corsConfiguration = new DefaultCorsConfiguration();
55
56 @Inject
57 public SelfConfiguredCorsFilter(final Provider<WebContext> webContextProvider) {
58 this.webContextProvider = webContextProvider;
59 }
60
61 @Override
62 public boolean matches(final HttpServletRequest request) {
63 final String uri = webContextProvider.get().getAggregationState().getCurrentURI();
64 return super.matches(request) && corsConfiguration.getUris().stream().anyMatch(pattern -> pattern.match(uri));
65 }
66
67 @Override
68 protected Optional<MgnlFilter> getCorsResponseFilter() {
69 return Optional.of(new CorsResponseFilter(corsConfiguration));
70 }
71
72 @Override
73 public List<SimpleUrlPattern> getUris() {
74 return corsConfiguration.getUris();
75 }
76
77 public void setUris(final List<SimpleUrlPattern> uris) {
78 corsConfiguration.setUris(uris);
79 }
80
81 @Override
82 public List<String> getAllowedOrigins() {
83 return corsConfiguration.getAllowedOrigins();
84 }
85
86 public void setAllowedOrigins(final List<String> allowedOrigins) {
87 corsConfiguration.setAllowedOrigins(allowedOrigins);
88 }
89
90 @Override
91 public List<String> getAllowedMethods() {
92 return corsConfiguration.getAllowedMethods();
93 }
94
95 public void setAllowedMethods(final List<String> allowedMethods) {
96 corsConfiguration.setAllowedMethods(allowedMethods);
97 }
98
99 @Override
100 public List<String> getAllowedHeaders() {
101 return corsConfiguration.getAllowedHeaders();
102 }
103
104 public void setAllowedHeaders(final List<String> allowedHeaders) {
105 corsConfiguration.setAllowedHeaders(allowedHeaders);
106 }
107
108 @Override
109 public int getMaxAge() {
110 return corsConfiguration.getMaxAge();
111 }
112
113 public void setMaxAge(final int maxAge) {
114 corsConfiguration.setMaxAge(maxAge);
115 }
116
117 @Override
118 public boolean isSupportsCredentials() {
119 return corsConfiguration.isSupportsCredentials();
120 }
121
122 public void setSupportsCredentials(final boolean supportsCredentials) {
123 corsConfiguration.setSupportsCredentials(supportsCredentials);
124 }
125 }