@RefreshScope(proxyMode = ScopedProxyMode.DEFAULT)
        @Bean
        public FilterRegistrationBean<RequestParameterPolicyEnforcementFilter> requestParameterSecurityFilter(
            final CasConfigurationProperties casProperties) {
            val httpWebRequest = casProperties.getHttpWebRequest();
            val initParams = new HashMap<String, String>();
            if (StringUtils.isNotBlank(httpWebRequest.getParamsToCheck())) {
                initParams.put(RequestParameterPolicyEnforcementFilter.PARAMETERS_TO_CHECK,
                    httpWebRequest.getParamsToCheck());
            }
            initParams.put(RequestParameterPolicyEnforcementFilter.CHARACTERS_TO_FORBID,
                httpWebRequest.getCharactersToForbid());
            initParams.put(RequestParameterPolicyEnforcementFilter.ALLOW_MULTI_VALUED_PARAMETERS,
                BooleanUtils.toStringTrueFalse(httpWebRequest.isAllowMultiValueParameters()));
            initParams.put(RequestParameterPolicyEnforcementFilter.ONLY_POST_PARAMETERS,
                httpWebRequest.getOnlyPostParams());

            if (StringUtils.isNotBlank(httpWebRequest.getPatternToBlock())) {
                initParams.put(RequestParameterPolicyEnforcementFilter.PATTERN_TO_BLOCK,
                    httpWebRequest.getPatternToBlock());
            }

            val bean = new FilterRegistrationBean<RequestParameterPolicyEnforcementFilter>();
            bean.setFilter(new RequestParameterPolicyEnforcementFilter());
            bean.setUrlPatterns(CollectionUtils.wrap("/*"));
            bean.setName("requestParameterSecurityFilter");
            bean.setInitParameters(initParams);
            bean.setAsyncSupported(true);
            return bean;
        }
This is {@link CasFiltersConfiguration} that attempts to create Spring-managed beans
backed by external configuration.

@author Misagh Moayyed
@since 5.0.0
support/cas-server-support-webconfig/src/main/java/org/apereo/cas/config/CasFiltersConfiguration.java