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

Spring Security整合JWT保护API时遇Unsatisfied dependency异常

解决Spring Security OAuth2资源服务器配置启动异常问题

异常根源

报错中的NoClassDefFoundError: org/springframework/security/oauth2/server/resource/web/BearerTokenResolver表明缺少对应的OAuth2资源服务器依赖类,或存在Spring Security版本不兼容、依赖冲突的情况。

解决方案

1. 引入正确的OAuth2资源服务器依赖

如果是Spring Boot项目,必须引入官方starter依赖,不要单独引入零散的Spring Security OAuth2组件:

Maven项目(pom.xml)

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-oauth2-resource-server</artifactId>
</dependency>

Gradle项目(build.gradle)

implementation 'org.springframework.boot:spring-boot-starter-oauth2-resource-server'

2. 校验版本兼容性

  • Spring Boot 3.x必须搭配Spring Security 6.x版本(Spring Boot的starter会自动管理版本,不要手动指定冲突版本)
  • 用mvn dependency:tree(Maven)或gradle dependencies(Gradle)排查依赖冲突,排除重复或低版本的Spring Security/OAuth2相关依赖。

3. 优化配置(可选)

你的配置写法符合Spring Security 6.x规范,可去掉不必要的httpBasic(withDefaults())(OAuth2资源服务器场景通常无需HTTP Basic认证,避免潜在冲突):

@Bean
public SecurityFilterChain security(HttpSecurity http) throws Exception {
    return http
            .csrf(AbstractHttpConfigurer::disable)
            .authorizeHttpRequests(auth -> auth.anyRequest().authenticated())
            .oauth2ResourceServer(oauth2 -> oauth2.jwt(Customizer.withDefaults()))
            .sessionManagement(session -> session.sessionCreationPolicy(SessionCreationPolicy.STATELESS))
            .build();
}

验证步骤

  1. 清理项目依赖缓存(Maven:mvn clean install -U;Gradle:gradle clean build --refresh-dependencies)
  2. 重新启动应用,检查异常是否消失

内容的提问来源于stack exchange,提问作者lulzeR

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 01:37:05