Spring Boot 2.3.4:使用JwtValidators.createDefaultWithIssuerString的错误吗?

问题描述

我发现JWT解析和JwtValidators的行为很奇怪。

场景:

  • Spring Boot OIDC客户端(目前仅是一个小型Web应用程序,仅显示Spring登录用户和一些OIDC对象)
  • 用于ID令牌验证的自定义JwtDecoderFacotry<ClientRegistration>
  • JwtValidatorFactory基于JwtValidators.createDefaultWithIssuer(String)

这在Spring Boot版本

调试:

  • NimbusJwtDecoder(JAR spring-security-oauth2-jose)使用声明集转换器。 “ iss”(发布者)声明将作为URL处理。
  • JwtIssuerValidator(由JwtValidators.createDefaultWithIssuer(String)内部创建)包装JwtClaimValidator<String>
  • 此人最终调用了始终为equals()的{​​{1}}-它比较String和URL。

我当前的解决方法不是调用false,而只是使用验证器JwtValidators.createDefaultWithIssuer()new JwtTimestampValidator()的自己实现(包装OAuth2TokenValidator<Jwt>)。

还有其他麻烦吗?

-基督徒

解决方法

这是一个错误。拉取请求已创建。