【问题标题】:Generate token with RS256 and Jwts.builder().signWith() produces invalid signature使用 RS256 和 Jwts.builder().signWith() 生成令牌生成无效签名
【发布时间】:2017-03-20 17:10:29
【问题描述】:

使用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

知道我可能缺少什么吗?

【问题讨论】:

    标签: java jwt jjwt


    【解决方案1】:

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

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

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

    【讨论】:

    • 确实如此,提供公钥并提供有效签名。
    猜你喜欢
    • 2019-05-27
    • 2019-08-11
    • 2019-07-14
    • 2016-12-20
    • 2018-07-31
    • 2020-11-04
    • 1970-01-01
    • 2022-12-05
    • 2018-05-24
    相关资源
    最近更新 更多