public ReferrerFilter()

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;
    }