Авторизация в микросервисах через SpringGateway на основе JWT токенов

В моем приложение сужествует несколько микросервисов:

  • сервис на SpringGateway
  • сервис аутентификации (со SpringSecurity). У него кроме этого есть эндпоинты вроде getUserById, getAllUsers. Доступ к которым может быть при наличии роли Admin.
  • пока только один ServiceCore где сама логика приложения.

Сервис Аутентифиувции генерит JWT токен (в нем usernsme и роли) при успешной аутентификации и отдает его. В SpringGateway сервис добавлен фильтр на основе AbstractGatewayFilterFactory, который проверяет на валидность токен и если все хорошо распарсивает его и добавляет заголовок 'username' с именем пользователя и 'roles' с ролями пользователя (идея в том что бы не тащить в каждый микросервис логику по проверке токена и каждый раз его парсить). То есть считаем что при наличии этих заголовков пользователь авторизован, и никаких запросов в сервис аутентификации не шлем. В связи сэтим возникает вопрос: Возможно ли закрыть доступ к эндпоинтам микросервисов кроме как через сервис SpringGateway (наверное возможно добавляя в каждый сервис какой нибудь фильтр на основе OncePerRequestFilter который что то будет проверять пока не понимаю до конца что)


Ответы (0 шт):