【问题标题】:how to get jhipster jwt private key?如何获取 jhipster jwt 私钥?
【发布时间】:2019-12-24 23:23:42
【问题描述】:

我正在使用 jhipster 创建多个微服务应用程序。我正在使用 UAA 服务器进行与用户相关的身份验证和任务。我需要操作 jhipster 创建的 JWT 并向有效负载添加一些属性,但我似乎找不到如何获取 jhipster 的私钥。

jHipster 正在使用 rs256 算法对 jwt 进行签名。我已经访问了 jwt 并更改了有效负载,但我无法使用 rs256 算法对其进行签名,因为我不知道如何检索它。我尝试切换到对称算法,但无法验证令牌,因为验证器使用 rs256 算法。

ResponseEntity<OAuth2AccessToken> responseEntity = restTemplate.postForEntity(getTokenEndpoint(), entity, OAuth2AccessToken.class);

jhipster 正在使用此代码进行身份验证并返回令牌。 我正在尝试创建一个新令牌:

JwtBuilder token = Jwts.builder()
            .setHeader(headerMap)
            .setClaims((Map<String, Object>) jwtMap.get("payload"))
            .signWith(SignatureAlgorithm.RS256, privateKey);
        String newJwt = token.compact();

但我没有私钥。

我尝试生成一个新的私钥并使用它,但我收到了Caused by: org.springframework.security.jwt.crypto.sign.InvalidSignatureException: RSA Signature did not match content 错误。 我想更改 jwt 有效负载并为其添加属性并将新令牌用作 jhipster 身份验证的访问令牌。

提前致谢

【问题讨论】:

    标签: java jwt jhipster


    【解决方案1】:

    它位于使用 java keytool 生成的密钥库中。

    在您生成的 uaa 项目中,application-prod.yml 的 cmets 中描述了要使用的命令。

    keytool -genkey -alias uaa -storetype PKCS12 -keyalg RSA -keysize 2048 -keystore keystore.p12 -validity 3650
    

    【讨论】:

    • 感谢您的回答。我按照你说的做了,我能够创建一个私钥。但我仍然收到此错误:Caused by: org.springframework.security.jwt.crypto.sign.InvalidSignatureException: RSA Signature did not match contentorg.springframework.security.oauth2.common.exceptions.InvalidTokenException: Cannot convert access token to JSON。我想我也应该更改公钥,但我不知道如何。你能帮助我吗?提前致谢
    • 很抱歉再次发表评论,但我想您应该知道,当我尝试在系统的其他部分使用生成的 JWT 时,而不是在创建 JWT 期间,我会收到这些错误。谢谢
    猜你喜欢
    • 2020-06-17
    • 2014-02-16
    • 2017-01-27
    • 2017-04-02
    • 2012-01-02
    • 2017-08-31
    • 1970-01-01
    • 2021-06-08
    • 2022-06-18
    相关资源
    最近更新 更多