Мне нравится получать предложения от пользователей SO, чтобы найти лучший способ решения этой проблемы.
Я использую диспетчер удостоверений (который поддерживает openid-connect), клиентский интерфейс (псевдоним FE), BFF (псевдоним BFF) и два backend API, написанных на Spring и Spring boot re. Мое требование таково:
- FE перенаправляет на IDM - получает токен JWT после успешной аутентификации. У JWT также есть правильные утверждения, а в URL-адресе обнаружения есть ключ publi c для проверки токена JWT. FE вызывает API через свой BFF.
- BFF вызывает API-1, который, в свою очередь, вызывает API-2.
- 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. Я очень сомневаюсь, что это рекомендуемый способ)