摘要:我正在试图验证JWT上的签名。这是我代码的一部分: 代码语言:javascript复制DecodedJWT jwt = JWT.decode(token); ... JwkProvider provider = new JwkProviderBuilder(jwk
我正在试图验证JWT上的签名。这是我代码的一部分:
代码语言:javascript复制DecodedJWT jwt = JWT.decode(token);
...
JwkProvider provider = new JwkProviderBuilder(jwksUrl).build();
Jwk jwk = provider.get(jwt.getKeyId());
Algorithm algorithm = Algorithm.RSA256((RSAPublicKey) jwk.getPublicKey(), null);
algorithm.verify(jwt);我只知道一个错误:
代码语言:javascript复制com.auth0.jwt.exceptions.SignatureVerificationException: The Token's Signature resulted invalid when verified using the Algorithm: SHA256withRSA但是,在jwt中,我可以看到算法显示为PS256而不是RSA256。这就是问题所在吗?我怎样才能得到这个来验证JWT?对于算法上的PS256,没有枚举选项。在某个地方看到可能是RSASSA,但我也看不出有什么选择。
更多信息: JWT是由外部提供者以一种奇怪的方式传递给我的,它不仅仅是HTTP头中的承载令牌,所以我需要自己来处理,而不是依赖框架来处理它。我正在使用Java 17。相关的依赖关系:
代码语言:javascript复制
