#spring-boot #jwt #netflix-zuul #api-gateway
#весенняя загрузка #jwt #netflix-zuul #api-шлюз
Вопрос:
Я использую «Zuul» в качестве шлюза api для своих микросервисов API на основе spring boot. Я также внедрил автономный «Сервер аутентификации» для создания и проверки токена JWT.
Чего я пытаюсь достичь, так это того, что «Zuul» вызывает «Сервер аутентификации» для проверки токена, прежде чем разрешить отправку запросов в любую службу.
Итак, базовый поток будет таким, как показано ниже
- Zuul будет использоваться только для целей шлюза
- Когда дело доходит до проверки JWT, «Zuul» запросит у «Сервера аутентификации», действителен ли токен или нет
- Если это допустимо, то «Маршрутизация по потоку» будет продолжена Zuul. В противном случае запрос будет отклонен, как обычно
Из-за проблем со скоростью и задержкой я ищу разумный способ сделать это. Существует множество примеров, основанных на «предварительной фильтрации Zuul перед маршрутизацией микросервиса вниз по потоку». И трудно понять, какой из них является лучшим подходом для моего случая. Помимо пользовательских подходов, существует ли какой-либо стандартный способ сделать это?
Ниже приведен лучший пример, который я нашел на данный момент. Из-за моего недостатка опыта я действительно не знаю, является ли эта архитектура хорошим вариантом для продолжения.
https://github.com/spring-cloud/spring-cloud-netflix/issues/1392#issuecomment-253267241
Ответ №1:
Дело в том, чтобы знать, как настроить сервер авторизации, для этого начните с этогоhttps://www.baeldung.com/spring-security-zuul-oauth-jwt .
После правильной настройки конфигурация в zuul не так уж сложна в применении.yaml вы должны установить это как:
security:
oauth2:
client:
clientId: your_clientId
clientSecret: your_clientSecret
accessTokenUri: your_accessTokenUri
userAuthorizationUri: your_userAuthorizationUri
resource:
userInfoUri: your_userInfoUri
preferTokenInfo: true/false