| | |
| | | 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.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.enabled}")
|
| | | private String enabled;
|
| | |
|
| | | @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);
|
| | | initParameters.put("enabled", enabled);
|
| | | 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;
|
| | | }
|
| | |
|
| | | }
|
| | | package com.ruoyi.framework.config; |
| | | |
| | | import com.ruoyi.common.filter.RepeatableFilter; |
| | | import com.ruoyi.common.filter.XssFilter; |
| | | import com.ruoyi.common.utils.StringUtils; |
| | | import com.ruoyi.framework.config.properties.XssProperties; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | 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 jakarta.servlet.DispatcherType; |
| | | import java.util.HashMap; |
| | | import java.util.Map; |
| | | |
| | | /** |
| | | * Filter配置 |
| | | * |
| | | * @author Lion Li |
| | | */ |
| | | @Configuration |
| | | public class FilterConfig { |
| | | |
| | | @Autowired |
| | | private XssProperties xssProperties; |
| | | |
| | | @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(xssProperties.getUrlPatterns(), ",")); |
| | | registration.setName("xssFilter"); |
| | | registration.setOrder(FilterRegistrationBean.HIGHEST_PRECEDENCE); |
| | | Map<String, String> initParameters = new HashMap<String, String>(); |
| | | initParameters.put("excludes", xssProperties.getExcludes()); |
| | | 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; |
| | | } |
| | | |
| | | } |