@Override
    public HeaderAllowDenyBean parseConfiguration(String jsonConfiguration) throws ConfigurationParseException {
        final HeaderAllowDenyBean config = super.parseConfiguration(jsonConfiguration);

        // precompile patterns for performance
        if (null != config.getEntries()) {
            for (HeaderEntryBean entry : config.getEntries()) {
                if (null != entry.getRules()) {
                    for (HeaderRulesBean rule : entry.getRules()) {
                        try {
                            if (!COMPILED_PATTERNS.containsKey(rule.getHeaderValueRegex())) {
                                COMPILED_PATTERNS.put(rule.getHeaderValueRegex(), Pattern.compile(rule.getHeaderValueRegex()));
                            }
                        } catch (Exception e) {
                            throw new ConfigurationParseException(MESSAGES.format("Error.CompilingPattern", rule.getHeaderValueRegex()), e); //$NON-NLS-1$
                        }
                    }
                }
            }
        }

        return config;
    }
@see io.apiman.gateway.engine.policies.AbstractMappedPolicy#parseConfiguration(String)
plugins/header-allow-deny-policy/src/main/java/io/apiman/plugins/headerallowdeny/HeaderAllowDenyPolicy.java