SpringBoot提取JWT Claims报错:parseClaimsJws方法无法解析(0.12.5版本)
解决JJWT 0.12.5版本中
parseClaimsJws方法找不到的问题 你遇到的问题源于JJWT从0.11.0版本开始的API重大重构,旧版本的链式调用逻辑已不再适用。
适配0.12.5版本的代码
public Claims extractClaims(String token) { SecretKey key = Keys.hmacShaKeyFor(secretKey.getBytes(StandardCharsets.UTF_8)); return Jwts.parserBuilder() .verifyWith(key) .build() .parseSignedClaims(token) .getBody(); }
关键变更说明
- 用
Jwts.parserBuilder().build()替代Jwts.parser():新版本要求通过构建器模式创建解析器,而非直接调用parser()方法。 - 用
verifyWith(key)替代setSigningKey(key):该方法更明确地表示密钥用于JWT签名验证,符合新版本API的设计逻辑。 - 用
parseSignedClaims(token)替代旧的parseClaimsJws(token):parseClaimsJws在0.12.x版本已被标记为过时,parseSignedClaims是官方推荐的替代方法,功能一致但命名更规范。
内容的提问来源于stack exchange,提问作者Nikhil Gadiwadd
相关产品推荐
相关产品推荐

