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

JWT 0.12.5版本setClaims等方法废弃问题求助

JJWT 0.12.5 废弃方法替换方案

针对你代码中IDE提示废弃的setClaims、setSubject、setIssuedAt、setExpiration、signWith方法,JJWT 0.12.x版本对API做了简化调整,替换方式如下:

核心变化点

  • 原setXxx形式的设置方法统一改为xxx()(比如setClaims→claims,setSubject→subject)
  • signWith方法不再需要传入SignatureAlgorithm参数,改为直接传入符合算法要求的Key对象(JJWT会根据Key类型自动匹配对应签名算法)

替换后的完整代码

private String createToken(Map<String, Object> claims, String subject) {
    // 将字符串密钥转换为HS256要求的Key对象
    Key key = Keys.hmacShaKeyFor(secret.getBytes());
    
    return Jwts.builder()
            .claims(claims)
            .subject(subject)
            .issuedAt(new Date(System.currentTimeMillis()))
            // 令牌10小时后过期
            .expiration(new Date(System.currentTimeMillis() + 1000 * 60 * 60 * 10))
            .signWith(key)
            .compact();
}

注意事项

  • 确保你的secret字符串长度符合HS256的要求:至少32字节(256位),否则JJWT会抛出异常。如果原密钥长度不足,建议更换为更长的密钥。
  • 若需要自定义签名算法,可通过signWith(key, SignatureAlgorithm.HS256)显式指定,但通常不需要——JJWT会自动识别Key对应的算法。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 04:55:58