使用Spring资源服务器初学者项目,Version2.4.4。我收到下面的异常,我在代码中找不到什么问题,因为它在我们的preprod env中运行得很好,但在prod环境中却没有工作。
观察到目前为止,
我已经检查过了,并且想确认,如果从jwk收到的孩子和从令牌接收的孩子是不同的,那么这个异常是可能的吗?注意到,对于令牌和jwk都是一样的。
来自jwk uri -
来自jwt报头-
查看这个代码,查看密钥标识检查片段,第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]
发布于 2021-09-27 15:19:15
如果来自令牌的kid
和来自JWKS端点的kid
不匹配,则预期会出现此异常。
再次检查您的配置,您可能会有一个客户端尝试使用来自不同发行人的令牌(可能来自您的预驱动程序)。
JWT应该在正文中包含一个iss
字段,帮助您跟踪问题。
https://stackoverflow.com/questions/69325795
复制相似问题