运行一段JWT测试代码,发现报错,原因是秘钥的字符不能少于4 public class JwtTests { private static long tokenExpriration = 1000 * 60 * 60 * 24; private static String tokenSignKey = "zyk";<错误,不能小于四个字符> private static String tokenSignKey = "zykg";<正确,大于四个字符> @Test public void testCreatedToken(){ JwtBuilder jwtBuilder = Jwts.builder(); //head.payload.signature //head String jwtToken = jwtBuilder.setHeaderParam("alg", "HS256") .setHeaderParam("typ","JWT") //payload 自定义信息 .claim("nicname","zydkd") .claim("avatar","1.jpg") .claim("age","15") //payload 默认信息 .setSubject("srb-user") //设置主题 .setIssuer("zdyk") .setAudience("ltt") .setIssuedAt(new Date()) .setExpiration(new Date(System.currentTimeMillis() + tokenExpriration))//过期时间 .setNotBefore(new Date(System.currentTimeMillis() + 1000 * 20)) //jti 唯一标志防止重放 .setId(UUID.randomUUID().toString()) //签名哈希 .signWith(SignatureAlgorithm.HS256, tokenSignKey) //组装jwt字符串 .compact(); System.out.println(jwtToken); } }
java.lang.IllegalArgumentException: secret key byte array cannot be null or empty
最新推荐文章于 2024-08-01 15:05:06 发布