1

使用 Spring Boot OAuth 资源服务器启动项目,版本 - 2.4.4。我收到以下异常,我在代码中找不到太多问题,因为它在我们的 preprod env 中运行良好,但在 prod 环境中没有工作
到目前为止观察,
我已经检查过,并想确认孩子是否从 jwk uri 和从 token 收到的孩子是不同的,那么这个异常可能吗?注意,在 pre-prod 环境中,kid 对于 token 和 jwk uri 是相同的。
来自 jwk uri -来自 jwt 标头-查看 此代码,用于检查密钥 id 代码段,第 253 行 .. 但我无法进一步了解它。
在此处输入图像描述

在此处输入图像描述

com.nimbusds.jose.proc.BadJOSEException: Signed JWT rejected: Another algorithm expected, or no matching key(s) found
    at com.nimbusds.jwt.proc.DefaultJWTProcessor.process(DefaultJWTProcessor.java:384) ~[nimbus-jose-jwt-8.20.2.jar:8.20.2]
    at com.nimbusds.jwt.proc.DefaultJWTProcessor.process(DefaultJWTProcessor.java:330) ~[nimbus-jose-jwt-8.20.2.jar:8.20.2]
    at org.springframework.security.oauth2.jwt.NimbusJwtDecoder.createJwt(NimbusJwtDecoder.java:153) ~[spring-security-oauth2-jose-5.4.5.jar:5.4.5]
4

1 回答 1

1

如果kid来自您的令牌和kid来自 JWKS 端点的 不匹配,则会出现此异常。

仔细检查您的配置,您可能有一个客户端尝试使用来自不同发行者的令牌(可能来自您的 pre-prod)。

JWT应该在正文中包含一个iss可以帮助您追踪问题的字段。

于 2021-09-27T15:19:15.003 回答