我正在用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 keytool生成的密钥库中。

生成的uaa项目中application-prod.yml的注释中描述了要使用的命令。

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

关于java - 如何获得jhipster jwt私钥?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57561846/

10-12 00:39