首页 > 解决方案 > 如何在 Spring Boot Oauth (spring-security-jwt) 中使用椭圆曲线签署 JWT?

问题描述

我曾经ssh-keygen -t ecdsa -b 521创建一个示例 EC 密钥对。然后,我尝试将其连接到 spring oauth 流程中,但我无法弄清楚。

存在org.springframework.security.jwt.crypto.sign.EllipticCurveVerifier但没有 EC 签名者。此外,我找不到从字符串形式的静态 EC 密钥对创建 ECPublicKey 和 ECPrivateKey 的示例。

RSA 对签署 JWT 的支持很简单。org.springframework.security.jwt.crypto.sign.RsaSigner 和 RsaVerifier 类使得使用字符串形式的静态 RSA 密钥对签名和验证令牌变得非常容易。我期待着类似的东西。我错过了什么吗?

更新

我认为即使使用 Signer 和 SignatureVerifier 的自定义实现也不支持它 - https://github.com/spring-projects/spring-security-oauth/blob/master/spring-security-jwt/src/main/java/ org/springframework/security/jwt/JwtAlgorithms.java#L30-L34

您不能使用 JwtHelper 类,因为支持的算法是硬编码的。

我想知道如果不支持 ecdsa,EC* 类应该做什么?

标签: spring-securityspring-security-oauth2

解决方案


推荐阅读