У меня уже есть закрытый ключ, который хранится в базе данных как varchar2
и хранится в переменной с именем Key
, как показано в коде.Ниже приведен фрагмент кода для установки этого закрытого ключа в JsonWebSignature, но я получаю сообщение об ошибке типа
Метод setKey (Key) в типе JsonWebStructure не применим для аргументов (String)
Я не хочу генерировать новый ключ RSA, поскольку он у меня уже есть.
public static String getJWTToken(String userName) throws JoseException {
JwtClaims claims = new JwtClaims();
claims.setAudience(Constants.AUDIENCE);
claims.setIssuer(InitialLoader.JWT_KEY);//Getting from config property file
claims.setIssuedAtToNow();
NumericDate tokenExpDate = NumericDate.now();
tokenExpDate.addSeconds(Constants.SECONDS);
claims.setExpirationTime(tokenExpDate);
if(userName!=null && !userName.isEmpty())
claims.setClaim("userName", userName);
System.out.println("Senders end :: " + claims.toJson());
// SIGNING the token
String key = "jxFd%asdjd";
RsaJsonWebKey jsonSignKey = RsaJwkGenerator.generateJwk(2048);
JsonWebSignature jws = new JsonWebSignature();
//jws.setKey(jsonSignKey.getPrivateKey());
jws.setKey(key);// Getting error here
jws.setPayload(claims.toJson());
jws.setHeader("typ", Constants.TYP);
jws.setAlgorithmHeaderValue(AlgorithmIdentifiers.HMAC_SHA256);// Setting the algorithm to be used
String signedJwt = jws.getCompactSerialization();// payload is signed using this compactSerialization
System.out.println("Signed key for sender is::" + signedJwt);
return signedJwt;
}