JOSE4J:如何从RsaJsonWebKey的JSON表示中创建RsaJsonWebKey objetc

问题描述:

我想用JOSE4J保存JSON格式的RsaJsonWebKey对象的JSON表示,然后再从它重新创建一个RsaJsonWebKey对象。我有编组部分:JOSE4J:如何从RsaJsonWebKey的JSON表示中创建RsaJsonWebKey objetc

RsaJsonWebKey rsaJsonWebKey = RsaJwkGenerator.generateJwk(2048);

String jwkjson = rsaJsonWebKey.toJson(JsonWebKey.OutputControlLevel.INCLUDE_PRIVATE);

但如何解组并重新创建RsaJsonWebKey。这是我卡住的地方,因为我没有看到RsaJsonWebKey的构造者允许这样做。

的问题是涉及到这个问题

JWT becomes invalid after restarting the server

,但它没有解释如何来解读。

谢谢!

月Brunia

的例子在JWT becomes invalid after restarting the server下半部确实显示了如何从一个JSON字符串得到一个JsonWebKey/PublicJsonWebKey对象。使用PublicJsonWebKey publicJsonWebKey = PublicJsonWebKey.Factory.newPublicJwk(jwkJson);将执行解析/解组,并且如果需要可以将其转换为RsaJsonWebKey

+0

嗨,Brian,我想使用一个没有加密的JSON字符串。我查看了JOSE4J的来源,这可能就像我有这种感觉。还没有尝试过它:Map jwkJsonParsed = JsonUtil.parseJson(jwkJson); \t RsaJsonWebKey RsaJsonWebKeyRecreated = new RsaJsonWebKey(jwkJsonParsed); ...其中jwkJson是我通过字符串获得的json字符串jwkJson = rsaJsonWebKey.toJson(JsonWebKey.OutputControlLevel.INCLUDE_PRIVATE); – JB007

+0

PublicJsonWebKey.Factory.newPublicJwk(jwkJson)会将JWK JSON解析为一个PublicJsonWebKey对象,如果它是RSA密钥,它将成为RsaJsonWebKey的一个实例。你不应该做任何你提到的。但它也应该工作。 –

+0

太棒了,谢谢Brian! – JB007