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
相关产品推荐
相关产品推荐

