Программисты JAVA общаются здесь
Anonymous
Jose4j: Как передать закрытый ключ в JsonWebSignature?
Сообщение
Anonymous » 04 ноя 2024, 12:58
Я использую org.bitbucket.b_c:jose4j:0.9.6 и пытаюсь подписать токен JWT и, используя приведенный ниже код, я не могу найти способ передать закрытый ключ объекту JsonWebSignature -
Код: Выделить всё
jws.setKey(PublicJsonWebKey.Factory.newPublicJwk(privateKeyPem).getPrivateKey());
это строка, в которой я пытаюсь установить ключ, буду благодарен за любую помощь.
Код: Выделить всё
String consumerKey = "****************************************";
String certificateId = "sdsdsdssdsdsdsdssdsdsdsfefer";
String tokenEndpoint = "https://xxxxxxxxxxxxxxxxxxxxxx/token";
String privateKeyPem = "-----BEGIN PRIVATE KEY-----\n"
+ "MII.......................
.........................Q3AFte\n "
+ "+**************************s=\n"
+ "-----END PRIVATE KEY-----";
JwtClaims claims = new JwtClaims();
claims.setIssuer(consumerKey);
claims.setAudience(tokenEndpoint);
claims.setExpirationTimeMinutesInTheFuture(60); // 1 hour
claims.setGeneratedJwtId();
claims.setIssuedAtToNow();
claims.setClaim("scope", "restlets rest_webservices");
// Create JWS Header
JsonWebSignature jws = new JsonWebSignature();
jws.setPayload(claims.toJson());
jws.setAlgorithmHeaderValue("PS256");
jws.setKeyIdHeaderValue(certificateId);
jws.setKey(
PublicJsonWebKey.Factory.newPublicJwk(privateKeyPem).getPrivateKey());
jws.setDoKeyValidation(false);
// Sign the JWT
String jwt = jws.getCompactSerialization();
Спасибо
Махендра
Подробнее здесь:
https://stackoverflow.com/questions/791 ... bsignature
1730714322
Anonymous
Я использую org.bitbucket.b_c:jose4j:0.9.6 и пытаюсь подписать токен JWT и, используя приведенный ниже код, я не могу найти способ передать закрытый ключ объекту JsonWebSignature - [code]jws.setKey(PublicJsonWebKey.Factory.newPublicJwk(privateKeyPem).getPrivateKey()); [/code] это строка, в которой я пытаюсь установить ключ, буду благодарен за любую помощь. [code]String consumerKey = "****************************************"; String certificateId = "sdsdsdssdsdsdsdssdsdsdsfefer"; String tokenEndpoint = "https://xxxxxxxxxxxxxxxxxxxxxx/token"; String privateKeyPem = "-----BEGIN PRIVATE KEY-----\n" + "MII....................... .........................Q3AFte\n " + "+**************************s=\n" + "-----END PRIVATE KEY-----"; JwtClaims claims = new JwtClaims(); claims.setIssuer(consumerKey); claims.setAudience(tokenEndpoint); claims.setExpirationTimeMinutesInTheFuture(60); // 1 hour claims.setGeneratedJwtId(); claims.setIssuedAtToNow(); claims.setClaim("scope", "restlets rest_webservices"); // Create JWS Header JsonWebSignature jws = new JsonWebSignature(); jws.setPayload(claims.toJson()); jws.setAlgorithmHeaderValue("PS256"); jws.setKeyIdHeaderValue(certificateId); jws.setKey( PublicJsonWebKey.Factory.newPublicJwk(privateKeyPem).getPrivateKey()); jws.setDoKeyValidation(false); // Sign the JWT String jwt = jws.getCompactSerialization(); [/code] Спасибо Махендра Подробнее здесь: [url]https://stackoverflow.com/questions/79153257/jose4j-how-to-pass-private-key-to-the-jsonwebsignature[/url]