Метод знака Quarkus smallrye jwt аварийно завершает работу при чтении ключа из секрета KubernetesJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Метод знака Quarkus smallrye jwt аварийно завершает работу при чтении ключа из секрета Kubernetes

Сообщение Anonymous »

Я хочу подписывать и проверять токены jwt в моем приложении Quarkus Rest. Закрытые и открытые ключи должны храниться как секреты Kubernetes.
Что я сделал до сих пор:
  • Создал ключи

Код: Выделить всё

openssl genrsa -out keypair.pem 2048
openssl rsa -in keypair.pem -pubout -out publickey.crt
openssl pkcs8 -topk8 -inform PEM -outform PEM -nocrypt -in keypair.pem -out pkcs8.key
  • Создать секрет Kubernetes

Код: Выделить всё

kubectl create secret generic jwt-keys -n my-namespace --from-file=privkey=pkcs8.key --from-file=pubkey=publickey.crt
  • Изменить application.properties

Код: Выделить всё

quarkus.kubernetes-config.secrets=jwt-keys
mp.jwt.sign.key=jwt-keys.privkey
mp.jwt.verify.publickey=jwt-keys.pubkey
smallrye.jwt.sign.key=jwt-keys.privkey
  • Попробуйте подписать токен

Код: Выделить всё

    private String createToken(Role role) {
long now = Instant.now().getEpochSecond();
long exp = now + TimeUnit.MINUTES.toSeconds(60);
return Jwt.issuer(issuer)
.claim(Claims.groups, role)
.issuedAt(Instant.ofEpochSecond(now))
.expiresAt(Instant.ofEpochSecond(exp))
.sign();
}
Поведение при вызове метода createToken:

Код: Выделить всё

io.smallrye.jwt.build.JwtSignatureException: SRJWT05009:
at io.smallrye.jwt.build.impl.JwtSignatureImpl.sign(JwtSignatureImpl.java:109)
at de.infinityq.auth.TokenManager.createToken(TokenManager.java:21)
at de.infinityq.auth.TokenManager.createUserToken(TokenManager.java:29)ethod:
.
.
.
.
.
Caused by: java.lang.IllegalArgumentException: SRJWT05028: Signing key can not be created from the loaded content
at io.smallrye.jwt.build.impl.JwtSignatureImpl.sign(JwtSignatureImpl.java:102)

Итак, функция подписи аварийно завершает работу при попытке загрузить ключ, который я определил в секрете Kubernetes, но я не понимаю, почему.
Я проверил это ключи действительны, если передать их напрямую в виде файлов, как показано в примере здесь: https://quarkus.io/guides/security-jwt#token-decryption
Я проверил, что мои подход должен работать, прочитав документацию smallrye: https://smallrye.io/docs/smallrye-jwt/generate-jwt.html, в котором четко указано, что я могу передать ключ как значение
Я не знаю, что еще делать , надеюсь, кто-нибудь сможет помочь.

Подробнее здесь: https://stackoverflow.com/questions/793 ... tes-secret
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»