You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
58 lines
2.1 KiB
58 lines
2.1 KiB
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 |
|
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(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; |
|
} |
|
|
|
}
|
|
|