使用RS256和Jwts.builder()生成令牌.signWith()生成无效签名

时间:2016-11-07 11:13:11

标签: java jwt jjwt

使用JWT Java library并使用 RS256 算法生成令牌,我总是使用jwt.io调试器获得无效签名。这是我的示例代码,我试图让它尽可能简单地从我当前的项目开始:

    // Create a legitimate RSA public and private key pair:
    KeyPair kp = RsaProvider.generateKeyPair();
    PublicKey publicKey = kp.getPublic();
    PrivateKey privateKey = kp.getPrivate();

    String jwt = Jwts.builder().setSubject("Joe").signWith(SignatureAlgorithm.RS256, privateKey).compact();

此代码的灵感来自测试类here

知道我可能缺少什么吗?

1 个答案:

答案 0 :(得分:1)

jwt.io调试器期望您提供与用于签署以公钥文件(PKCS#8)格式编码的令牌的私钥相关联的公钥。

确保您使用该格式指定它,示例如下:

-----BEGIN PUBLIC KEY-----
BASE64 DATA
-----END PUBLIC KEY-----