Как создать подписанный JWT с алгоритмом RSA512 - PullRequest
3 голосов
/ 10 июля 2019

Я пытался создать токен JWT ("JOT") для аутентификации моего вызова API. Всякий раз, когда я пытаюсь создать токен с подписью RSA512, я получаю сообщение об ошибке «1001 *»

java.lang.IllegalArgumentException: подписи RSA должны быть вычислены с использованием RSA PrivateKey. Указанный ключ типа javax.crypto.spec.SecretKeySpec не является RSA PrivateKey.

Я использую код ниже:

 SignatureAlgorithm signatureAlgorithm = SignatureAlgorithm.RS512;

 long nowMillis = System.currentTimeMillis();
  Date now = new Date(nowMillis);
 byte[] apiKeySecretBytes = DatatypeConverter.parseBase64Binary(SECRET_KEY);
 Key signingKey = new SecretKeySpec(apiKeySecretBytes, 
                signatureAlgorithm.getJcaName());

   JwtBuilder builder = Jwts.builder().claim("uuid", 
    id).setIssuedAt(now).setExpiration(new Date(600000))
    .signWith(signatureAlgorithm, signingKey);

Когда я пытаюсь создать с помощью алгоритма HS, он генерирует токен, но когда я пытаюсь проверить его в JWT.IO, он всегда говорит о недопустимой подписи.

Как мне справиться с этим и как создать подписанный JWT?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...