Сервер авторизации Spring OAuth за прокси-сервером Spring Cloud Zuul

В настоящее время я занимаюсь разработкой приложения на основе микросервисной архитектуры. Мы используем API-шлюз, реализованный с использованием Zuul Server Spring Cloud Netfix, для маршрутизации запросов к нашим микро-сервисам.

Для реализации единого входа для всех наших служб в настоящее время я работаю на сервере OAuth2, настроенном с использованием Spring Cloud Security. Сервер в основном просто копия и прошлая реализация в Dave Syer's Repo:https://github.com/dsyer/spring-security-angular/tree/master/oauth2/authserver

Основное отличие состоит в том, что я хочу направлять запросы на мой сервер OAuth через прокси Zuul. Таким образом, мне не придется напрямую выставлять свой OAuth-сервер, и я могу динамически добавлять и удалять Login Server.

Проблема в том, что я не шва, чтобы понять, как правильно настроить эту настройку. Когда я пытаюсь получить доступ к защищенному ресурсу на сервере OAuth, меня перенаправляют на страницу входа. Это, конечно, как и ожидалось. Но я не могу понять, как установить имя хоста и порт, используемый при пересылке. Я хочу, чтобы сервер переадресовал конечную точку на сервере Zuul, которая будет перенаправлена ​​обратно на сервер OAuth. (API-шлюз Zuul должен быть единственным сервером, с которым когда-либо общается клиент. Все остальное будет скрыто.)

Так как это хост и порт читаются изHttpServletRequest вLoginUrlAuthenticationEntryPoint, Но запрос, который видит сервер, является запросом, отправленным прокси Zuul. Поэтому я перенаправлен на внутренний IP, а не на конечную точку прокси.

Я пытался установить URL-адрес страницы входа вWebSecurityConfigurerAdapter.configure(HttpSecurity) на абсолютный URL моего Zuul Proxy. Но это только вызвало мое заявление, чтобы жаловаться на слишком много перенаправлений. (Возможно, там возникла петля.)

Как лучше всего это настроить?

Должен ли я реализовать какую-то собственную стратегию пересылки, переопределив бин?Есть ли параметр конфигурации, который мне не хватает?Моя идея сама по себе неверна? (В своем ответеКак избежать перенаправления на другой хост с Zuul? Дейв Сайер говорит, что вы обычно не прокси, но не объясняет почему.)

Ответы на вопрос(2)

Ваш ответ на вопрос