У меня есть приложение Spring Boot, которое очень близко к работе, за исключением самой важной части. По сути, установка четырех микросервисов (есть несколько других, но четыре для целей этого вопроса).
- реестр сервисов: реестр сервисов Eureka
- шлюз: сервис Zuul Gateway, через который обмениваются данными все остальные сервисы,
- security: простой сервис с логином веб-страница и реализует аутентификацию JWT
- web: простое веб-приложение, которое отображает контент, который пользователь должен авторизовать для просмотра
То, что я пытаюсь выполнить sh, - это иметь конфигурацию безопасности, которая проверяет действительный токен jwt и, если не найден, переходит на пользовательскую страницу входа.
Это сложно объяснить, поэтому я приведу некоторые номера портов, чтобы проиллюстрировать их. Мы можем забыть о порте реестра службы.
Я могу показать страницу входа через шлюз с: http://localhost: 8080 / security / login и это выглядит хорошо. Но когда я пытаюсь перейти на страницу в веб-микросервисе: http://localhost: 8080 / web / page , я ожидаю, что меня перенаправят на http://localhost: 8080 / security / login , но вместо этого я вижу эту страницу: http://173.7.8.9: 8081 / security / login . Я составил IP-адрес, но это мой назначенный IP-адрес из моей сети.
Моя конфигурация безопасности выглядит следующим образом:
@Override
protected void configure(HttpSecurity http) throws Exception {
http.authorizeRequests()
.requestMatchers().permitAll()
// All other requests are authenticated
.anyRequest().authenticated()
.and()
.addFilterAfter(jwtAuthenticationFilter, UsernamePasswordAuthenticationFilter.class)
.formLogin()
.loginPage("/security/login");
}
Я думал, что эта установка будет работать, потому что я попытка получить доступ к пути безопасности / входа в систему относительно того же сервера и порта, что и запрошенная веб-страница. Веб-страница по адресу http://localhost: 8080 / web / page , а страница входа по адресу http://localhost: 8080 / security / login , тот же сервер и порт, но разные пути. Но что-то в моей настройке вызывает замену сервера и порта шлюза реальным сервером и портом страницы входа в систему безопасности, и мне нужно, чтобы это прекратилось.
Есть идеи?