Что я сделал до сих пор:
- Создал ключи
Код: Выделить всё
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();
}
Код: Выделить всё
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)
Я проверил это ключи действительны, если передать их напрямую в виде файлов, как показано в примере здесь: 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