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

升级spring-security-oauth2-client后启动报错:NoSuchFieldError: CLIENT_SECRET_BASIC

问题分析与解决办法

错误原因

java.lang.NoSuchFieldError: CLIENT_SECRET_BASIC 源于版本兼容性不匹配:

  • 升级后的 spring-security-oauth2-client 5.6.9/5.7.5 属于Spring Security 5.6+版本,该版本中CLIENT_SECRET_BASIC字段的定义位置发生变更(移至ClientAuthenticationMethod枚举,不再属于旧版本的OAuth2AuthorizationRequest类)。
  • 你当前使用的 spring-cloud-services-starter-config-client 3.1.5.RELEASE 基于Spring Boot 2.4.x构建,仅兼容Spring Security 5.3.x~5.4.x版本,它的ConfigClientOAuth2BoostrapConfiguration类仍依赖旧版本的字段定义,导致初始化时找不到该字段。

具体解决办法

方案1:升级Spring Cloud Config Client到兼容版本

将spring-cloud-services-starter-config-client升级到与Spring Security 5.6+/5.7+匹配的版本:

  • 若选用Spring Security 5.6.x(如5.6.9),对应升级到spring-cloud-services-starter-config-client 3.3.x.RELEASE(基于Spring Boot 2.6.x,兼容Spring Security 5.6.x)。
  • 若选用Spring Security 5.7.x(如5.7.5),对应升级到spring-cloud-services-starter-config-client 3.4.x.RELEASE(基于Spring Boot 2.7.x,兼容Spring Security 5.7.x)。

调整后的依赖示例:

<dependency>
    <groupId>io.pivotal.spring.cloud</groupId>
    <artifactId>spring-cloud-services-starter-config-client</artifactId>
    <version>3.3.4.RELEASE</version>
    <type>pom</type>
</dependency>

<dependency>
    <groupId>org.springframework.security</groupId>
    <artifactId>spring-security-web</artifactId>
    <version>5.6.9</version>
</dependency>

<dependency>
    <groupId>org.springframework.security</groupId>
    <artifactId>spring-security-oauth2-client</artifactId>
    <version>5.6.9</version>
</dependency>

方案2:降级Spring Security到兼容的安全补丁版本

如果无法升级Spring Cloud Config Client,可选择Spring Security 5.3.x的最新安全补丁版本(该版本已修复高危漏洞,同时与3.1.5.RELEASE的Config Client兼容):

  • 统一所有Spring Security相关依赖版本为5.3.20.RELEASE,避免版本冲突。

调整后的依赖示例:

<dependency>
    <groupId>io.pivotal.spring.cloud</groupId>
    <artifactId>spring-cloud-services-starter-config-client</artifactId>
    <version>3.1.5.RELEASE</version>
    <type>pom</type>
</dependency>

<dependency>
    <groupId>org.springframework.security</groupId>
    <artifactId>spring-security-web</artifactId>
    <version>5.3.20.RELEASE</version>
</dependency>

<dependency>
    <groupId>org.springframework.security</groupId>
    <artifactId>spring-security-oauth2-client</artifactId>
    <version>5.3.20.RELEASE</version>
</dependency>

注意事项

  • 确保所有Spring Security相关依赖(spring-security-web、spring-security-oauth2-client等)版本完全一致,避免隐式依赖冲突。
  • 若使用Maven,可通过mvn dependency:tree命令检查依赖树,确认是否有第三方依赖引入了不一致的Spring Security版本,必要时通过<exclusions>标签排除冲突依赖。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 07:41:35