Как можно распространить заголовок авторизации в приложениях Quarkus с помощью клиента MicroProfile Rest?

У меня есть два микросервиса, реализованные в Quarkus 1.5.2.Final с конечными точками, защищенными с помощью @RolesAllowed (пользователь). Конечные точки работают, когда я вызываю их напрямую с действующим токеном.

Когда я использую клиент MicroProfile Rest (синхронный режим) для вызова второго микросервиса, заголовок авторизации отсутствует.

Согласно спецификации MicroProfile (https://download.eclipse.org/microprofile/microprofile-rest-client-1.3/microprofile-rest-client-1.3.html) следующий параметр должен помочь: org.eclipse.microprofile.rest.client. PropateHeaders = Авторизация

Однако это не работает. Я тоже пробовал это безуспешно. mp.rest.client.propagateHeaders = Авторизация, resteasy.role.based.security = true и quarkus.smallrye-jwt.enabled = true.

Когда я вручную добавляю заголовок в Rest Client, он работает, но я понял, что это должно происходить автоматически.

Я делаю что-то не так, или это может быть проблема с версией MicroProfile, встроенной в Quarkus 1.5.2.Final?

Спасибо!


person Niklas Heidloff    schedule 02.07.2020    source источник
comment
Вот пример приложения: github.com/IBM/cloud-native- стартер / дерево / мастер / безопасность   -  person Niklas Heidloff    schedule 21.07.2020


Ответы (2)


Филипп Крюгер ответил на вопрос. Все, что нужно было добавить, это этот параметр в службе, которая вызывается другой службой.

resteasy.role.based.security = true

Код находится здесь: https://github.com/IBM/cloud-native-starter/blob/d30b084eeddcebf793037bea07244fe20917caa3/security/articles-secure/src/main/resources/application.properties#L9

person Niklas Heidloff    schedule 21.07.2020

Согласно спецификации, для работы свойства mp.rest.client.propagateHeaders необходимо, чтобы @RegisterClientHeaders был указан в интерфейсе, определяющем внешнюю службу.

person Ken    schedule 02.07.2020
comment
Спасибо, Кен. Извините за поздний ответ (отпуск). RegisterClientHeaders, к сожалению, тоже не работает. github.com/IBM/cloud-native-starter/blob/ и github.com/IBM/cloud-native-starter/blob/ - person Niklas Heidloff; 15.07.2020
comment
Я также безуспешно пробовал @RegisterRestClient :( - person Niklas Heidloff; 16.07.2020
comment
@NiklasHeidloff прочтите это: download.eclipse.org/microprofile/ - person Serkan; 16.07.2020
comment
Возможно ли, что заголовок называется не авторизацией, а чем-то другим? - person Ken; 16.07.2020
comment
Нет, у него правильное название. Когда я добавляю его вручную в запрос, он работает. - person Niklas Heidloff; 17.07.2020
comment
Вы пробовали с ClientRequestFilter? stackoverflow.com/a/64121292/5078874 - person Adrian Escutia Soto; 29.09.2020