如何在没有发行人字段的情况下接受 JWT?

问题描述 投票:0回答:1

如果 JWT 缺少颁发者字段,我想回退到

jwk-uri
jwk-key-set
,我需要在 Spring OAuth2 库中覆盖什么,因为缺少颁发者失败是 Spring 默认行为。

另一种方法是检测丢失的发行人字段,并使用诸如

emptyIssuer
之类的字符串注入该字段...然后我可以在应用程序属性中定义适当的发行人。

spring-boot spring-security oauth-2.0 jwt
1个回答
0
投票

使用 Spring Boot,仅定义

spring.security.oauth2.resourceserver.jwt.jwk-set-uri
属性(而不是
spring.security.oauth2.resourceserver.jwt.issuer-uri
)。

JWK 集足以让解码器验证 JWT 签名。

如果设置了

spring.security.oauth2.resourceserver.jwt.issuer-uri
,则

  • JWT 解码器配置为根据 conf 中的值检查
    iss
    声明
  • boot 尽力从
    jwk-set-uri
    推断
    issuer-uri
    (当授权服务器兼容 OIDC 时成功)
© www.soinside.com 2019 - 2024. All rights reserved.