package org.dromara.common.web.config; import jakarta.servlet.DispatcherType; import org.dromara.common.web.config.properties.XssProperties; import org.dromara.common.web.filter.RepeatableFilter; import org.dromara.common.web.filter.XssFilter; import org.springframework.boot.autoconfigure.AutoConfiguration; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.boot.web.servlet.FilterRegistration; import org.springframework.boot.web.servlet.FilterRegistrationBean; import org.springframework.context.annotation.Bean; /** * Filter配置 * * @author Lion Li */ @AutoConfiguration @EnableConfigurationProperties(XssProperties.class) public class FilterConfig { @Bean @ConditionalOnProperty(value = "xss.enabled", havingValue = "true") @FilterRegistration( name = "xssFilter", urlPatterns = "/*", order = FilterRegistrationBean.HIGHEST_PRECEDENCE + 1, dispatcherTypes = DispatcherType.REQUEST ) public XssFilter xssFilter() { return new XssFilter(); } @Bean @FilterRegistration(name = "repeatableFilter", urlPatterns = "/*") public RepeatableFilter repeatableFilter() { return new RepeatableFilter(); } }