Лучший способ ПЕРЕДАТЬ токены JWT из одного SPRING API в другой - PullRequest
0 голосов
/ 19 июня 2020

Мне нравится получать предложения от пользователей SO, чтобы найти лучший способ решения этой проблемы.

Я использую диспетчер удостоверений (который поддерживает openid-connect), клиентский интерфейс (псевдоним FE), BFF (псевдоним BFF) и два backend API, написанных на Spring и Spring boot re. Мое требование таково:

  1. FE перенаправляет на IDM - получает токен JWT после успешной аутентификации. У JWT также есть правильные утверждения, а в URL-адресе обнаружения есть ключ publi c для проверки токена JWT. FE вызывает API через свой BFF.
  2. BFF вызывает API-1, который, в свою очередь, вызывает API-2.
  3. API-2 должен проверять авторизованного пользователя, чтобы гарантировать, что "Manager" предоставит связан с токеном JWT

введите описание изображения здесь Вышеупомянутые API-1 и API-2 - это два Spring API, и я предполагаю, что для этого вопроса BFF передает токен jwt в API-1, а API-1 также следует рекомендуемому процессу для проверки токена.

У меня вопрос, каков рекомендуемый способ для API-1 получить токен в заголовках запроса и передать его API-2 с помощью функций Spring.

(В настоящее время я использую поток -locals, чтобы облегчить это, т.е. в фильтре запроса я добавляю полученный заголовок в локальный поток, затем он выполняет свою логику, и в момент вызова API-2 я извлекаю заголовок в локальном пространстве потока и передаю его в API-2. Я очень сомневаюсь, что это рекомендуемый способ)

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