Аутентификация в весеннем облачном шлюзе

Я новичок в весеннем облаке. Я пытаюсь интегрировать Spring Cloud Gateway(Spring Cloud Finchley.SR1) только для проверки подлинности и маршрутизации моих запросов.

Мой стек приложений выглядит следующим образом

  • Главная панель инструментов Приложение построено с использованием пружинных и угловых. Он имеет страницу входа и панель инструментов. В него встроена аутентификация, которая аутентифицирует учетные данные пользователя по базе данных. Я также использую Hazelcast для репликации сессии в этом приложении.
  • Набор сервисов Downstream, которые будут вызываться, как только пользователь войдет в панель управления и перейдет в нее.
  • API-шлюз, построенный с использованием весеннего облачного шлюза: пока он выполняет только маршрутизацию.

spring: cloud: gateway: routes: - id: customers uri: http://localhost:8282/customers predicates: - Path=/customers/** - Header=employeeId, \d+ filters: - RewritePath=/customers/(?<segment>.*), /$\{segment} - id: rates uri: http://localhost:8383/rates predicates: - Path=/rates/** filters: - RewritePath=/rates/(?<segment>.*), /$\{segment}

Необходимо реализовать следующее

  • Первый запрос придет к шлюзу. Мне нужно проверить, аутентифицирован ли пользователь или нет, если не аутентифицирован, то мне нужно показать страницу входа в приложение Dashboard (то есть первое приложение) или разрешить пользователю продолжить.
  • После того, как пользователь вошел в систему и перешел в панель управления, запросы API к службам нижестоящего уровня также будут проходить через шлюз API. Мне также необходимо подтвердить подлинность этих запросов и отправить статус 403, если пользователь не прошел проверку подлинности.

Я не могу понять, как обрабатывать эти аутентификации в приложении Spring Cloud Gateway. Можно ли использовать репликацию сеанса hazelcast, которую я добавил в Main Dashboard App, использовать ее для проверки пользователя в шлюзе?

Или есть какой-то лучший подход с использованием инструментов Spring Cloud Suite, который я могу использовать здесь. Пример приложения будет полезен

0 ответов

В моем случае я настроил класс AuthenticationWebFilter в Spring Security 2.0.5. И я настроил класс ServerAuthenticationConverter и классы SuccessHandler, FailureHandler и ReactiveAuthenticationManager в AuthenticationWebFilter. Если вы используете Spring Security, я рекомендую поискать в WebFilter. Я надеюсь, что это помогает.

Другие вопросы по тегам