已签名的 JWT 被拒绝:需要另一个算法,或者找不到匹配的密钥
Signed JWT rejected: Another algorithm expected, or no matching key(s) found
使用 Spring 引导 OAuth 资源服务器启动项目,版本 - 2.4.4。
我收到以下异常,我在代码中找不到太多问题,因为它在我们的预生产环境中运行良好
但不能在产品环境中工作
到目前为止的观察,
我已经检查过,并想确认 如果从 jwk uri 收到的孩子和从令牌收到的孩子不同,那么是否可能出现此异常?注意,令牌和 jwk uri 的孩子相同在 pre-prod 环境中。
来自 jwk uri -
来自 jwt header -
查看了此 code,用于密钥 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]
如果您的令牌中的 kid
与 JWKS 端点中的 kid
不匹配,则预计会出现此异常。
仔细检查您的配置,您的客户端可能试图使用来自不同发行者的令牌(可能来自您的预生产)。
JWT 应该 在正文中包含一个 iss
字段,可以帮助您找到问题。
使用 Spring 引导 OAuth 资源服务器启动项目,版本 - 2.4.4。
我收到以下异常,我在代码中找不到太多问题,因为它在我们的预生产环境中运行良好
但不能在产品环境中工作
到目前为止的观察,
我已经检查过,并想确认 如果从 jwk uri 收到的孩子和从令牌收到的孩子不同,那么是否可能出现此异常?注意,令牌和 jwk uri 的孩子相同在 pre-prod 环境中。
来自 jwk uri -
来自 jwt header -
查看了此 code,用于密钥 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]
如果您的令牌中的 kid
与 JWKS 端点中的 kid
不匹配,则预计会出现此异常。
仔细检查您的配置,您的客户端可能试图使用来自不同发行者的令牌(可能来自您的预生产)。
JWT 应该 在正文中包含一个 iss
字段,可以帮助您找到问题。