Мне нужно понять, как избежать или как управлять липким сеансом во время OAuth2 - Предоставление потока кода авторизации, в частности во время: GET / uaa / oauth / authorize, POST / uaa / login и снова GET / uaa / oauth / authorize
Наша служба аутентификации будет обслуживать только два веб-приложения, принадлежащих нам, каждый из которых является сервером ресурсов с проверками на токен и действительность.Если токена нет или он недействителен, они будут перенаправлены непосредственно на страницу входа на сервер аутентификации (истинное значение для первого вызова: GET /oauth/authorize).
Для получения кода авторизации необходимо следующеешаги:
-Первый вызов для регистрации запроса клиента GET / uaa / oauth / authorize, сохранение в сеансе (Spring Redis в моем случае) некоторой информации, например callbackurl клиента
-Второй вызов для входа в системупо учетным данным пользователя POST / login
- третий вызов для получения ACCESS_CODE GET / uaa / oauth / authorize, получения URL-адреса обратного вызова из сеанса.
Но что если я подделаю два запроса от двух разных клиентов?открыть в одном браузере две разные вкладки?
Например, одна с:
http://localhost:9191/uaa/oauth/authorize?response_type=code&client_id=client-one&scope=auth&redirect_uri=http://localhost:8080/client-one
, а другая с:
localhost:9191/uaa/oauth/authorize?response_type=code&client_id=client-two&scope=auth&redirect_uri=http://localhost:8080/client-two
Spring Session запутывается.Например:
- Открытие WebApp1 на вкладке Tab1, а затем WebApp2 на вкладке 2.
- Вход в систему на вкладке Tab1 будет перенаправлять на URI перенаправления WebApp2.
- Затем возврат на вкладку Tab2 вернется.в / uaa / вызывает 404.
Я пытался настроить SessionRepository безуспешно, но, используя другие сервисы с Oauth2, я начинаю верить, что мне нужно хотя бы по одной странице в каждойwebapp, проксирование перед первым вызовом GET /oauth/authorize.
Есть ли рекомендация по предотвращению зависания сеанса с этим потоком?
Или какой-то способ управления несколькими вкладками без HTMLстраница?Spring-Security использует липкий сеанс по умолчанию.
Спасибо за ваше время.