SCENERIO
У меня есть Zuul Server в качестве шлюза API, Identity Server с Oauth2, ResourceServer1 и ResourceServer2 в примере
ZuulServer, ResourceServer1 иResourceServer2 имеет распределенный сеанс с Hazelcast.
Ниже приведены шаги, которые я выполнил -
Запрос страницы Http, который поступает на сервер zuul, будет перенаправлен на страницу входа в систему по адресуидентификационный сервер.Аутентифицируйте пользователя с помощью oauth2.(Jsessionid возвращается с путем "/")
При получении токена авторизации на шлюзе zuul, сохранял токен аутентификации в распределенном сеансе с использованием Hazelcast.
При успешной проверке подлинности шлюза Zuul страница перенаправляется на домашнюю страницу ResourceServer1
Вызов веб-страницы на resourceServer1 маршрутизируется через шлюз zuul api и здесь, на шлюзе,добавлен токен авторизации
Внутри контроллера домашней страницы я написал две функции, прежде чем показывать домашнюю страницу
Функциональность 1 - Установите значение дляраспределенный сеанс Hazelcast с ключом "TEST_SESSION"
Функциональность 2 - Выполнены вызовы RestTemplate для ResourceServer2 (здесь я добавил cookie)
Вызов RestTemplateк ResourceServer2 были направлены через Zuul API Gateway, и здесь на шлюзе был добавлен токен аутентификации
Элемент управления достиг ResourceServer2, остальные aПи-контроллер и проверил значения сеанса.Значение, сохраненное в шаге 2, было доступно, но значение шага 6 было недоступно.
Вскоре домашняя страница была отображена в браузере (новый сеанс был возвращен с контекстным путем ResourceServer1)
С веб-страницы выполнен оставшийся вызов API api ResourceServer1 через Zuul API Gateway, и здесь был добавлен токен аутентификации.
Элемент управления достиг контроллера ResourceServer1 и возвратил ожидаемыйзначение.
Обнаружено, что для каждого вызова API ResourceServer1 из веб-браузера создается новый сеанс для ResourceServer1.
ПРОБЛЕМА
В последние несколько недель я застрял со следующими проблемами.Пожалуйста, помогите мне в этом отношении: -
Я хочу, чтобы ResourceServer2 имел доступ к информации сеанса, созданной ResourceServer1.Но я не смог получить информацию о сеансе на ResourceServer2, он всегда возвращает ноль.Я проверил сервер Hazelcast с помощью Hazelcast Mancenter и обнаружил, что сеанс распределен.
Как ограничить создание новых сеансов при выполнении вызова API для сервера ресурсов?Это замечено в шагах 9, 10 и 12. Обратите внимание, что здесь я хочу получить значение сеанса, созданного на шагах 2 и 6, используя HttpServletReqest.getSession (), и который создает новый сеанс.Если я удалю код, чтобы получить значение в сеансе, новый сеанс не будет создан.
Заранее спасибо