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

Spring Boot 3.0与HttpSecurity兼容问题:Filter适配方案咨询

解决Spring Boot 3.0.2升级后HttpSecurity addFilter()的javax/jakarta兼容问题

问题描述

我将Spring Boot版本从2.5.2升级至3.0.2并完成部分重构,但遇到HttpSecurity的addFilter()方法要求传入javax.servlet.Filter,而Spring Boot 3.0已全面使用jakarta相关API的兼容问题。相关代码来自适配Spring Boot 2.5.2的YouTube教程。

当前Maven依赖

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-jpa</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-security</artifactId>
    </dependency>
    <dependency>
        <groupId>org.yaml</groupId>
        <artifactId>snakeyaml</artifactId>
        <version>2.0</version>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-devtools</artifactId>
        <scope>runtime</scope>
        <optional>true</optional>
    </dependency>
    <dependency>
        <groupId>com.mysql</groupId>
        <artifactId>mysql-connector-j</artifactId>
        <version>8.0.31</version>
        <scope>runtime</scope>
    </dependency>
    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <optional>true</optional>
    </dependency>
    <dependency>
        <groupId>com.auth0</groupId>
        <artifactId>java-jwt</artifactId>
        <version>4.2.1</version>
    </dependency>
    <dependency>
        <groupId>org.springframework.security</groupId>
        <artifactId>spring-security-config</artifactId>
        <version>5.7.5</version>
    </dependency>
</dependencies>

注:因传递依赖漏洞,已将snakeyaml版本改为2.0

问题截图

问题截图

解决方案

核心原因

Spring Boot 3.0基于Spring Framework 6,完全遵循Jakarta EE 9规范,所有javax.servlet相关API已替换为jakarta.servlet。你的项目中存在版本冲突的依赖,导致javax和jakarta API混用。

具体步骤

  • 移除冲突的Spring Security依赖:直接删除pom.xml中手动引入的spring-security-config:5.7.5依赖,Spring Boot的spring-boot-starter-security会自动引入适配3.0版本的Spring Security 6.x,该版本已完全基于jakarta.servlet。
  • 更新自定义Filter的包导入:将所有自定义Filter类里的import javax.servlet.*相关语句,替换为import jakarta.servlet.*,确保Filter实现的是jakarta.servlet.Filter接口。
  • 升级第三方依赖版本:将java-jwt升级到兼容Spring Boot 3.0的稳定版本(如4.4.0及以上),避免潜在的API兼容问题。
  • 清理重建项目:执行mvn clean install清理Maven缓存并重新构建,确保所有依赖生效。

内容的提问来源于stack exchange,提问作者Müseyib Ələkbər

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 22:35:05