Spring Boot 2.3.4: ошибка с JwtValidators.createDefaultWithIssuer(String)?

Я обнаружил странное поведение с парсингом JWT и JwtValidators.

Сценарий:

  • Клиент Spring Boot OIDC (на данный момент это крошечное веб-приложение, отображающее только зарегистрированного пользователя и некоторые объекты OIDC, предоставленные Spring)
  • На заказ JwtDecoderFacotry<ClientRegistration> для проверки ID-Token
  • JwtValidatorFactory на основе JwtValidators.createDefaultWithIssuer(String)

Это хорошо работало с Spring Boot версии <= 2.2.10.

Отладка:

  • NimbusJwtDecoder(JAR spring-security-oauth2-jose) использует преобразователи набора утверждений. Утверждение "iss" (издатель) обрабатывается как URL.
  • JwtIssuerValidator (внутренне создано JwtValidators.createDefaultWithIssuer(String)) оборачивает JwtClaimValidator<String>.
  • этот наконец звонит equals() это всегда false - сравнивает строку с URL.

Мой текущий обходной путь не вызывает JwtValidators.createDefaultWithIssuer() но просто используя валидаторы new JwtTimestampValidator() и собственная реализация OAuth2TokenValidator<Jwt> (с упаковкой JwtClaimValidator<URL>).

У кого-нибудь еще есть проблемы с этим?

- Кристиан

1 ответ

Решение

Это ошибка. Запрос на вытягивание создан.