实例化SecurityWebFilterChain时出现NoClassDefFoundError:BearerTokenServerAuthenticationEntryPoint
解决NoClassDefFoundError: BearerTokenServerAuthenticationEntryPoint错误
问题根源
你当前仅引入了spring-boot-starter-oauth2-client依赖,但基于WebFlux环境搭建OAuth2资源服务器时,还缺少适配WebFlux的资源服务器核心依赖。BearerTokenServerAuthenticationEntryPoint类属于spring-security-oauth2-resource-server-webflux模块,未引入该模块导致运行时找不到类。
解决方案
- 补充资源服务器依赖
在pom.xml中添加WebFlux环境的OAuth2资源服务器starter:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-oauth2-resource-server</artifactId> </dependency>
该依赖会自动引入WebFlux环境下资源服务器所需的所有核心类,包括缺失的BearerTokenServerAuthenticationEntryPoint。
确认版本兼容性
确保Spring Boot与Spring Cloud版本匹配(参考官方版本映射规则),避免版本冲突引发其他异常。验证现有配置有效性
你的application.yml配置和SecurityConfig类逻辑本身无问题,在Keycloak的issuer地址可正常访问的前提下,添加依赖后即可正常启动并完成JWT令牌校验。
补充说明
spring-boot-starter-oauth2-client主要用于OAuth2客户端模式(如授权码、密码模式)的集成,而资源服务器需要专门的依赖来处理令牌校验、认证入口等逻辑,WebFlux环境必须使用适配的WebFlux版本依赖。
内容的提问来源于stack exchange,提问作者roconmachine
相关产品推荐
相关产品推荐

