Spring REST服务JWT认证报错:SecureRequest类未找到
解决方案:ClassNotFoundException: io.jsonwebtoken.security.SecureRequest
核心原因
这个错误是因为JJWT库的依赖不完整或版本不兼容导致的。从0.11.0版本开始,JJWT将核心功能拆分为多个独立模块,若只引入了基础模块,缺少包含SecureRequest类的安全模块,就会触发该异常。
具体修复步骤
1. 统一JJWT依赖版本
确保所有JJWT相关依赖使用相同的稳定版本(推荐0.11.5),避免跨版本冲突。
2. 补充完整的JJWT依赖
如果使用Maven,在pom.xml中添加以下依赖:
<dependency> <groupId>io.jsonwebtoken</groupId> <artifactId>jjwt-api</artifactId> <version>0.11.5</version> </dependency> <dependency> <groupId>io.jsonwebtoken</groupId> <artifactId>jjwt-impl</artifactId> <version>0.11.5</version> <scope>runtime</scope> </dependency> <dependency> <groupId>io.jsonwebtoken</groupId> <artifactId>jjwt-jackson</artifactId> <version>0.11.5</version> <scope>runtime</scope> </dependency>
如果使用Gradle,在build.gradle中添加:
implementation 'io.jsonwebtoken:jjwt-api:0.11.5' runtimeOnly 'io.jsonwebtoken:jjwt-impl:0.11.5' runtimeOnly 'io.jsonwebtoken:jjwt-jackson:0.11.5'
3. 清理并重新构建项目
- Maven执行:
mvn clean install - Gradle执行:
gradle clean build - 重启Spring Boot应用后重新测试登录接口
额外排查点
- 用
mvn dependency:tree或Gradle依赖报告检查是否存在多版本JJWT依赖,如有则排除冲突版本。 - 若参考的教程基于JJWT旧版(如0.9.x),需调整代码适配0.11.x版本的API(新旧版API差异较大)。
内容的提问来源于stack exchange,提问作者Riccardo Migliaccio
相关产品推荐
相关产品推荐

