package com.ruoyi.framework.config; 
 | 
  
 | 
import java.util.HashMap; 
 | 
import java.util.Map; 
 | 
import javax.servlet.DispatcherType; 
 | 
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 com.ruoyi.common.filter.RepeatableFilter; 
 | 
import com.ruoyi.common.filter.XssFilter; 
 | 
import com.ruoyi.common.utils.StringUtils; 
 | 
  
 | 
/** 
 | 
 * Filter配置 
 | 
 * 
 | 
 * @author ruoyi 
 | 
 */ 
 | 
@Configuration 
 | 
@ConditionalOnProperty(value = "xss.enabled", havingValue = "true") 
 | 
public class FilterConfig 
 | 
{ 
 | 
    @Value("${xss.excludes}") 
 | 
    private String excludes; 
 | 
  
 | 
    @Value("${xss.urlPatterns}") 
 | 
    private String urlPatterns; 
 | 
  
 | 
    @SuppressWarnings({ "rawtypes", "unchecked" }) 
 | 
    @Bean 
 | 
    public FilterRegistrationBean xssFilterRegistration() 
 | 
    { 
 | 
        FilterRegistrationBean registration = new FilterRegistrationBean(); 
 | 
        registration.setDispatcherTypes(DispatcherType.REQUEST); 
 | 
        registration.setFilter(new XssFilter()); 
 | 
        registration.addUrlPatterns(StringUtils.split(urlPatterns, ",")); 
 | 
        registration.setName("xssFilter"); 
 | 
        registration.setOrder(FilterRegistrationBean.HIGHEST_PRECEDENCE); 
 | 
        Map<String, String> initParameters = new HashMap<String, String>(); 
 | 
        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; 
 | 
    } 
 | 
  
 | 
} 
 |