You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring Boot整合Spring Security时springSecurityFilterChain创建失败求助

问题分析

这个ClassCastException的核心原因是Spring Boot 3.x 基于 Jakarta EE 9+,所有Servlet相关API已从javax.servlet迁移到jakarta.servlet。而你的项目中出现了javax.servlet.Filter与Spring Security 6.x(适配Jakarta EE)提供的CsrfFilter(实现jakarta.servlet.Filter)的类型不匹配,本质是依赖冲突或配置引用了旧的javax相关类。

排查与解决步骤
  • 清理依赖冲突

    1. 用mvn dependency:tree命令生成依赖树,找出所有引入javax.servlet-api的依赖,在对应的<dependency>节点中添加排除规则:
      <exclusion>
          <groupId>javax.servlet</groupId>
          <artifactId>javax.servlet-api</artifactId>
      </exclusion>
      
    2. 确保Spring Security依赖使用Spring Boot Starter提供的适配版本,不要手动指定旧版本:
      <dependency>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-starter-security</artifactId>
      </dependency>
      
  • 修正配置类API引用
    检查你的Security配置类,将所有javax.servlet相关的导入替换为jakarta.servlet包下的类:

    // 错误导入
    // import javax.servlet.Filter;
    // 正确导入
    import jakarta.servlet.Filter;
    
  • 清理缓存并重建项目

    1. 执行mvn clean install清理旧编译文件与依赖缓存
    2. 若使用IDEA,执行File -> Invalidate Caches...清理IDE缓存后重启
  • 排查第三方依赖兼容性
    检查项目中其他第三方库是否未适配Jakarta EE,优先更换为支持Jakarta的版本(例如将commons-fileupload替换为commons-fileupload2)

验证

完成上述操作后重启项目,若仍报错,可提供mvn dependency:tree的输出结果进一步排查。

内容的提问来源于stack exchange,提问作者Артём Орёл

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 21:57:05