我正在使用 Spring 授权服务器创建 OAuth2 授权服务器。
为了生成 JWT,我已经配置了 RSAKey。我已使用 RSAKey.Builder.x509CertThumbprint 方法设置了证书的 SHA-1 指纹。但是,一旦生成令牌,x5t 标头就不包含在内。
如果我设置 SHA-256 指纹,则会将其添加到生成的 JWT 标头中。
此外,方法 RSAKey.Builder.x509CertThumbprint 已标记为已弃用。但我需要添加 x5t 标头。有什么办法可以添加吗?
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"
}