in src/main/java/org/apache/sling/security/impl/ReferrerFilter.java [282:313]
public ReferrerFilter(final Config config,
@Reference(policyOption = ReferencePolicyOption.GREEDY, cardinality = ReferenceCardinality.MULTIPLE, service=ReferrerFilterAmendment.class) List<ReferrerFilterAmendment> amendments) {
this.allowEmpty = config.allow_empty();
this.allowedRegexReferrers = createRegexPatterns(
mergeValues(config.allow_hosts_regexp(), amendments, a -> a.allowHostsRegex()));
this.excludedRegexUserAgents = createRegexPatterns(
mergeValues(config.exclude_agents_regexp(), amendments, a -> a.excludeAgentsRegex()));
this.excludedPaths = mergeValues(config.exclude_paths(), amendments, a -> a.excludePaths()).toArray(new String[0]);
final Set<String> allowUriReferrers = getDefaultAllowedReferrers();
if (config.allow_hosts() != null) {
allowUriReferrers.addAll(
mergeValues(config.allow_hosts(), amendments, a -> a.allowHosts()));
}
this.allowedUriReferrers = createReferrerUrls(allowUriReferrers);
String[] methods = config.filter_methods();
if (methods != null) {
final List<String> values = new ArrayList<>();
for (final String m : methods) {
if (m != null && m.trim().length() > 0) {
values.add(m.trim().toUpperCase());
}
}
if (values.isEmpty()) {
methods = null;
} else {
methods = values.toArray(new String[values.size()]);
}
}
this.filterMethods = methods;
}