package com.gkhy.assess.framework.config; import com.gkhy.assess.common.filter.RepeatableFilter; import com.gkhy.assess.common.filter.XssFilter; import com.gkhy.assess.common.utils.StringUtils; import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.boot.web.servlet.FilterRegistrationBean; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import javax.servlet.DispatcherType; import java.util.HashMap; import java.util.Map; /** * Filter配置 * */ @Configuration public class FilterConfig { @Value("${xss.excludes}") private String excludes; @Value("${xss.urlPatterns}") private String urlPatterns; // // @SuppressWarnings({ "rawtypes", "unchecked" }) // @Bean // @ConditionalOnProperty(value = "xss.enabled", havingValue = "true") // public FilterRegistrationBean xssFilterRegistration() // { // FilterRegistrationBean registration = new FilterRegistrationBean(); // registration.setDispatcherTypes(DispatcherType.REQUEST); // registration.setFilter(new XssFilter()); // registration.addUrlPatterns(String.valueOf(StringUtils.split(urlPatterns, ","))); // registration.setName("xssFilter"); // registration.setOrder(FilterRegistrationBean.HIGHEST_PRECEDENCE); // Map initParameters = new HashMap(); // initParameters.put("excludes", excludes); // registration.setInitParameters(initParameters); // return registration; // } @SuppressWarnings({ "rawtypes", "unchecked" }) @Bean public FilterRegistrationBean someFilterRegistration() { FilterRegistrationBean registration = new FilterRegistrationBean(); registration.setFilter(new RepeatableFilter()); registration.addUrlPatterns("/*"); registration.setName("repeatableFilter"); registration.setOrder(FilterRegistrationBean.LOWEST_PRECEDENCE); return registration; } }