【发布时间】:2020-09-10 17:58:19
【问题描述】:
大家! 我正在尝试使用 auth0 ECDSA256 算法使用 ES256 签署 JWT 信息和 JWT 数据。
ECPublicKey publicKeyRs = getPublicKey();
ECPrivateKey privateKeyRs = getPrivateKey();
Algorithm algorithmRs = Algorithm.ECDSA256(publicKeyRs, privateKeyRs);
signedToken = JWT.create()
.withExpiresAt(new Date())
.withSubject(jwtData.getSub()).
withAudience(jwtData.getAud()).sign(algorithmRs);
但是当我运行签名函数来创建 JWT 时,我遇到了这个错误:
Exception in thread "main" com.auth0.jwt.exceptions.SignatureGenerationException: The Token's Signature couldn't be generated when signing using the Algorithm: SHA256withECDSA
at com.auth0.jwt.algorithms.ECDSAAlgorithm.sign(ECDSAAlgorithm.java:65)
at com.auth0.jwt.JWTCreator.sign(JWTCreator.java:441)
at com.auth0.jwt.JWTCreator.access$100(JWTCreator.java:26)
at com.auth0.jwt.JWTCreator$Builder.sign(JWTCreator.java:419)
它是由以下原因引起的:
Caused by: java.security.SignatureException: Invalid DER signature format.
at com.auth0.jwt.algorithms.ECDSAAlgorithm.DERToJOSE(ECDSAAlgorithm.java:118)
at com.auth0.jwt.algorithms.ECDSAAlgorithm.sign(ECDSAAlgorithm.java:63)
... 6 more
请您帮忙解决这些错误并告诉我哪里出错了?
【问题讨论】: