【发布时间】:2017-07-12 20:32:56
【问题描述】:
我正在使用
JwtBuilder builder = Jwts.builder()
.setId(user.getEmail())
.signWith(signatureAlgorithm, signingKey);
然后创建一个令牌
Jwts.parser().setSigningKey(secret).parse(token);
进行身份验证。当我在 JUnit 测试中运行它时,它工作正常。但是,当我通过 REST 调用对作为标头传递的令牌进行身份验证时,身份验证失败并出现 SignatureException。我已经验证了 HTTP 调用两端的令牌,并且令牌字符串是相同的。创建/验证的代码是静态的,因此,每一侧的秘密都是相同的。
【问题讨论】:
-
你能发布一个示例令牌和密钥吗?
-
静态密钥 = MacProvider.generateKey();签名算法签名算法=签名算法.HS256; byte[] apiKeySecretBytes = secret.getEncoded();密钥签名密钥 = new SecretKeySpec(apiKeySecretBytes, signatureAlgorithm.getJcaName());