如何将x5t标头添加到通过Spring授权服务器生成的JWT

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

我正在使用 Spring 授权服务器创建 OAuth2 授权服务器。

为了生成 JWT,我已经配置了 RSAKey。我已使用 RSAKey.Builder.x509CertThumbprint 方法设置了证书的 SHA-1 指纹。但是,一旦生成令牌,x5t 标头就不包含在内。

如果我设置 SHA-256 指纹,则会将其添加到生成的 JWT 标头中。

此外,方法 RSAKey.Builder.x509CertThumbprint 已标记为已弃用。但我需要添加 x5t 标头。有什么办法可以添加吗?

java oauth-2.0 oauth spring-authorization-server
1个回答
0
投票

RSAKey.Builder.x509CertThumbprint
可让您向 RSA 密钥添加
SHA-1
指纹。在
Google 关于冲突的公告
之后,Nimbus 库已弃用使用 SHA-1 哈希值。 请参阅此问题了解更多信息。

话虽这么说,您可以使用

SHA-256
方法向构建器添加
x509CertSHA256Thumbprint()
指纹。

例如:

RSAKey.Builder(rsa_public_key)
    .privateKey(private_key)
    .x509CertSHA256Thumbprint(thumbprint)
    .keyID(key_id)
    .build();

这将为 JWT 添加一个

x5t#S256
标头。

例如:

{
  "x5t#S256": "KJKNDKnksdiserwienw",
  "kid": "123412341234",
  "alg": "RS256"
}
© www.soinside.com 2019 - 2024. All rights reserved.