这是我的实施:
@Bean
@Primary
public JwtAccessTokenConverter accessTokenConverter() {
JwtAccessTokenConverter jwtAccessTokenConverter = new JwtAccessTokenConverter();
jwtAccessTokenConverter.setSigner(new MacSigner("HMACSHA512", new SecretKeySpec("secret_password".getBytes(), "HMACSHA512")));
return jwtAccessTokenConverter;
}
生成令牌,但是当我尝试使用此令牌调用某个api时,我在postman中遇到了这个错误:
{
"error": "invalid_token",
"error_description": "Cannot convert access token to JSON"
}
当我替换此行时:
jwtAccessTokenConverter.setSigner(new MacSigner("HMACSHA512", new SecretKeySpec("secret_password".getBytes(), "HMACSHA512")));
这一行:
jwtAccessTokenConverter.setSigningKey("secret_password");
令牌生成和授权也可以。但它使用默认的HS256。你能告诉我如何修复我的代码以使用HS512吗?感谢。
答案 0 :(得分:0)
将算法更改为512 您需要将服务器/资源JwtAccessTokenConverter setVerifier设置为与setSigner相同的操作,例如:
jwtAccessTokenConverter.setVerifier(MacSigner("HMACSHA512", SecretKeySpec("secret_password".toByteArray(), "HMACSHA512")))
请记住:是否需要设置