Аутентификация в весеннем облачном шлюзе
Я новичок в весеннем облаке. Я пытаюсь интегрировать 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. Я надеюсь, что это помогает.