【发布时间】:2020-10-01 01:14:50
【问题描述】:
我正在尝试使用以下代码在我的服务中解码和验证 JWT 令牌:
String jwtSecret= "my_key";
Claims claims = Jwts.parser()
.setSigningKey(jwtSecret)
.parseClaimsJws(jwt).getBody();
return claims;
上面的代码不起作用,抛出如下异常:
java.lang.IllegalArgumentException: Key bytes cannot be specified for RSA signatures. Please specify a PublicKey or PrivateKey instance.
我也尝试过创建公钥,但没有成功。 谁能说明我缺少什么?
【问题讨论】:
-
您的
jwt令牌是如何发行的? -
令牌由验证用户生成令牌的其他服务颁发。
-
您的意思是令牌是通过另一个服务承载的。但最初颁发令牌的授权服务器是谁?
-
是的。这是通过另一项服务。实际上我的服务是一个处理 websockets 所以在握手时我在路径参数中获取令牌并尝试验证令牌
-
其他服务从哪里获取令牌?