SpringBoot中Filter没有生效原因及解决方案
我的一个老项目从SpringMvc升级到了SpringBoot、项目中使用了两个过滤器,分别是XSS注入过滤器和CSRF攻击过滤器。
Servlet 三大组件 Servlet、Filter、Listener 在传统项目中需要在 web.xml 中进行相应的配置。
Servlet 3.0 开始在 javax.servlet.annotation 包下提供 3 个对应的 @WebServlet、@WebFilter、@WebListener 注解来简化操作,@WebServlet、@WebFilter、@WebListener 写在对应的 Servlet、Filter、Listener 类上作为标识,从而不需要在 web.xml 中进行配置了。
因此新的代码如下
@Component
@WebFilter(urlPatterns = {"/*"}, filterName = "csrfFilter")
public class WebCsrfFilter implements Filter{
}和
@Component
@WebFilter(urlPatterns = {"/*"}, filterName = "xssFilter")
public class WebXssFilter extends XssFilter {
}在测试过程中发现设置的Filter没有生效,经过排查发现需要注意的是:Spring Boot 应用中这三个注解默认是不被扫描的,需要在项目启动类上添加 @ServletComponentScan 注解, 表示对 Servlet 组件扫描。
因此在SpringBootApplication项目上需要使用@ServletComponentScan注解后,Servlet、Filter、Listener才可以直接通过@WebServlet、@WebFilter、@WebListener注解自动注册,无需其他代码。
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.servlet.ServletComponentScan;
@SpringBootApplication
@ServletComponentScan(basePackages = "com.web.global.filter")
public class WebApplication extends SpringBootServletInitializer{
public static void main(String[] args) {
SpringApplication.run(WebApplication.class, args);
}到此这篇关于SpringBoot中Filter没有生效原因排查的文章就介绍到这了,更多相关SpringBoot中Filter没有生效内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
一文了解Java读写锁ReentrantReadWriteLock的使用
ReentrantReadWriteLock称为读写锁,它提供一个读锁,支持多个线程共享同一把锁。这篇文章主要讲解一下ReentrantReadWriteLock的使用和应用场景,感兴趣的可以了解一下2022-10-10
Spring Bean Scope 有状态的Bean与无状态的Bean
这篇文章主要介绍了Spring Bean Scope 有状态的Bean与无状态的Bean,每个用户有自己特有的一个实例,在用户的生存期内,bean保持了用户的信息,下面来了解有状态和无状态的区别吧2022-01-01
SpringCloud Config统一配置中心问题分析解决与客户端动态刷新实现
springcloud config是一个解决分布式系统的配置管理方案。它包含了 client和server两个部分,server端提供配置文件的存储、以接口的形式将配置文件的内容提供出去,client端通过接口获取数据、并依据此数据初始化自己的应用2022-10-10
Java中关键字final finally finalize的区别介绍
这篇文章主要给大家分享的是 Java中final,finally,finalize 到底有什么区别,文章围绕final,finally,finalize的相关资料展开详细内容,具有一定的参考的价值,需要的朋友可以参考一下2022-04-04
解决mapstruct在eclipse生成不了mapper的实现类问题
这篇文章主要介绍了解决mapstruct在eclipse生成不了mapper的实现类问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教2023-11-11


最新评论