问题描述
@Test
public void testJwtBuilder() {
JwtBuilder jwtBuilder = Jwts.builder()
.setId("123456")
.setSubject("Snake")
.setIssuedAt(new Date())
.signWith(SignatureAlgorithm.HS256,"123456789");
String token = jwtBuilder.compact();
System.out.println(token);
for (String s : token.split("\\.")) {
System.out.println(Base64Codec.BASE64.decodetoString(s));
}
}
这是我生成的代币:eyJhbGciOiJIUzI1NiJ9.eyJqdGkiOiIxMjM0NTYiLCJzdWIiOiJTbmFrZSIsImlhdCI6MTYyNjg4NTMwMH0.R0WmOmXaH93DiY_SQ8pA8pM2A
我将机密设置为“123456789”,但我可以用“123456789x”或“12345678”解析它。
这是我的解析代码:
@Test
public void parsetoken() {
String token = "eyJhbGciOiJIUzI1NiJ9.eyJqdGkiOiIxMjM0NTYiLCJzdWIiOiJTbmFrZSIsImlhdCI6MTYyNjg4NTMwMH0.R0WmOmXaH93DiY_On98p7wSmKMsYpQN4a0T8-b82-bA";
Claims claims = Jwts.parser()
.setSigningKey("123456789x")
.parseClaimsJws(token)
.getBody();
System.out.println(claims);
}
为什么会这样?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)