Ключ подписи не найден

Использование http://jwtenizr.sh/ для создания конфигурации микропрофиля jwt. Добавление файла microprofile-config.properties отлично работает с quarkus, но при попытке с openliberty я получаю следующую ошибку:

CWWKS5523E: Функция JWT MicroProfile не может аутентифицировать запрос, поскольку действительный JWT не может быть создан из токена, включенного в запрос. CWWKS6029E: Веб-токен JSON (JWT) не может быть проверен, потому что не удалось найти ключ подписи. Сконфигурированный алгоритм подписи [RS256] требует ключа для проверки токена.

Мой server.xml выглядит следующим образом:

<?xml version="1.0" encoding="UTF-8"?>
<server description="${project.artifactId}">

   <featureManager>
      <feature>mpJwt-1.1</feature>
      <feature>jaxrs-2.1</feature>
      <feature>cdi-2.0</feature>
      <feature>mpConfig-1.3</feature>
      <feature>mpOpenAPI-1.0</feature>
      <feature>appSecurity-2.0</feature>
   </featureManager>

   <httpEndpoint id="defaultHttpEndpoint"
      httpPort="${httpPort}" httpsPort="${httpsPort}" />

   <application location="${project.build.finalName}.war" />

   <logging traceSpecification="${log.name}.*=${log.level}" />

</server>

microprofile-config.properties

mp.jwt.verify.issuer=airhacks
mp.jwt.verify.publickey=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAgNSR7iZWlwOvJFyDFsva5XxUmRkBl3EjUn1OlV+jBj3LngKXBIujwAGCXYw+wr9JGJglmaOITqHtrow4j0T1wVGQF4cgN1o+FtcYyeDVsk+Ji3T3PaIIedgfzn1ufQUyWoeJAeROxmMOydImJeSe1o8VEP/ulvBAqq9IlJ2fw1Q521IE4geG5LywTSY/SdFo5zSs7sewNbZYKAguODEBQJNI85xe64mBwBKN2CKxVrwzq6plaVVBlityIcJLvh/pEXaBdnrEUXSfy4+Bf4jCIAUEV0O3GAR27fU5+tWdoHW0PIjjZ5W86D55JH+YWYOGQ06e+irLgHKxVNTIvpjE2QIDAQAB

Мне нужно добавить хранилище ключей? Если да, то зачем это нужно?


person BeCodeMonkey    schedule 12.08.2019    source источник


Ответы (2)


Не знаю, почему в OpenLiberty не работает конфигурация со строкой mp.jwt.verify.publickey.

Во всяком случае, мне удалось заставить его работать таким образом:

microprofile-config.properties

mp.jwt.verify.issuer=airhacks
mp.jwt.verify.publickey.location=/META-INF/public-key.pem

public-key.pem

-----BEGIN PUBLIC KEY-----
MIIBIj... <public key>
-----END PUBLIC KEY-----
person srnjak    schedule 01.10.2019
comment
Возникла точно такая же проблема, и ваше решение сработало. Спасибо. Все еще странно. - person Bram Janssens; 07.12.2020
comment
@BramJanssens Я рад, что вам это помогло. Вы можете проголосовать за ответ. - person srnjak; 07.12.2020

Это действительно странно. Я только что протестировал это с помощью:

mp.jwt.verify.publickey = ----- НАЧАТЬ ПУБЛИЧНЫЙ КЛЮЧ ----- MIIBIj ... ----- КОНЕЦ ОБЩЕСТВЕННОГО КЛЮЧА -----

и это работает. Я не знаю, зачем ему объявления верхнего / нижнего колонтитула.

person Vedran Smid    schedule 11.10.2019
comment
Вот ссылка на текущее объяснение, почему он не работает без заголовков - ›github .com / OpenLiberty / guide-microprofile-jwt / issues / 108 - person Vedran Smid; 16.10.2019