小编Moh*_*wal的帖子

只能为 HMAC 签名指定 Base64 编码的密钥字节

嗨,我正在使用 spring 安全性在 Spring Boot 中编写 JWT。当我使用正文部分中的以下详细信息向邮递员请求 POST 时

{
"userName": "RAM",
"id":123,
"role": "admin"
}
Run Code Online (Sandbox Code Playgroud)

然后我得到低于错误

{
    "timestamp": "2018-05-06T14:57:12.048+0000",
    "status": 500,
    "error": "Internal Server Error",
    "message": "Base64-encoded key bytes may only be specified for HMAC signatures.  If using RSA or Elliptic Curve, use the signWith(SignatureAlgorithm, Key) method instead.",
    "path": "/token"
}
Run Code Online (Sandbox Code Playgroud)

我使用以下代码用于生成器的 jwt builder

   @Component
public class JwtGenerator {

    public String generate(JwtUser jwtUser) {
        // TODO Auto-generated method stub
        Claims claim= Jwts.claims() 
                .setSubject(jwtUser.getUserName());
            claim.put("userId", String.valueOf(jwtUser.getId()));
            claim.put("role", jwtUser.getRole());

            String secret …
Run Code Online (Sandbox Code Playgroud)

base64 spring-security jwt spring-boot

5
推荐指数
1
解决办法
7411
查看次数

标签 统计

base64 ×1

jwt ×1

spring-boot ×1

spring-security ×1