У нас есть приложение безопасности для весны с довольно стандартной настройкой. В настоящее время мы разрешаем только 1 сеанс на одного принципала, отклоняя дополнительные логины одним и тем же директором до тех пор, пока первый сеанс не будет завершен или не истечет (maximumSessions = 1, excpeptionIfMaximumExceeded = true).Оповещение пользователя о замене сеанса одновременным входом
Я хотел бы изменить это так, чтобы, когда главный журнал регистрируется во второй раз с активным входом в текущий сеанс на другом сеансе, первый сеанс отменяется/заменяется. Это легко выполнить с помощью прилагаемой стратегии контроля одновременной сессии Spring безопасности, но у меня возникли проблемы с выяснением того, как предупреждать пользователя. Когда сеанс пользователя заменяется, сеанс недействителен обработчиком выхода из системы. Следующий запрос получит перенаправление на страницу входа с кодом ошибки в строке запроса. Однако, если запрос, который получает это перенаправление, является изображением или другим непрограммным вызовом, я не могу справиться с этим.
Похоже, мне нужно поместить пользователя в промежуточное состояние, где у них есть сеанс, но он истек, и им нужно зайти в систему, если они не означают замену их первоначальной сессии. Однако я не вижу хорошего способа сделать это.
Есть ли пример такой установки, как это?
В настоящее время у нас есть механизм опроса для сеанса, истекший из-за таймаута, который мы бы адаптировали к этому. Мы могли бы справиться с этим, сделав еще один шаг при входе в систему, но меня больше интересует чистое обращение с выселенным сеансом на стороне пользовательского интерфейса. Я согласен с тем, что безопасность действительно должна быть логической, но я не хочу, чтобы сеанс «волшебным образом» возвращался к экран входа в систему, если последний запрос на недействительный сеанс пойман по запросу, мы не можем обработать статус возврата, то есть изображение или скрипт. – HonkHonkHonk