为什么我在尝试用SignatureVerificationException验证JWT时得到PS256?

admin 7221次浏览

摘要:我正在试图验证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复制

com.auth0

java-jwt

4.0.0

com.auth0

jwks-rsa

0.21.2

相关文章
友情链接