2010-12-28 3 views
3

У нас есть приложение безопасности для весны с довольно стандартной настройкой. В настоящее время мы разрешаем только 1 сеанс на одного принципала, отклоняя дополнительные логины одним и тем же директором до тех пор, пока первый сеанс не будет завершен или не истечет (maximumSessions = 1, excpeptionIfMaximumExceeded = true).Оповещение пользователя о замене сеанса одновременным входом

Я хотел бы изменить это так, чтобы, когда главный журнал регистрируется во второй раз с активным входом в текущий сеанс на другом сеансе, первый сеанс отменяется/заменяется. Это легко выполнить с помощью прилагаемой стратегии контроля одновременной сессии Spring безопасности, но у меня возникли проблемы с выяснением того, как предупреждать пользователя. Когда сеанс пользователя заменяется, сеанс недействителен обработчиком выхода из системы. Следующий запрос получит перенаправление на страницу входа с кодом ошибки в строке запроса. Однако, если запрос, который получает это перенаправление, является изображением или другим непрограммным вызовом, я не могу справиться с этим.

Похоже, мне нужно поместить пользователя в промежуточное состояние, где у них есть сеанс, но он истек, и им нужно зайти в систему, если они не означают замену их первоначальной сессии. Однако я не вижу хорошего способа сделать это.

Есть ли пример такой установки, как это?

ответ

1

Вы задумывались над разработкой механизма опроса в javascript, чтобы предупредить пользователя о том, что его сессия будет признана недействительной? Таким образом, они узнают, что их сеанс недействителен и, возможно, имеет возможность обновить его, если они частично заполнили формы или текстовые области.

Это также может работать со стороны входа. Вы можете добавить шаг после входа в систему, если у них активен другой сеанс, и попросите их подтвердить, что они хотят его аннулировать.

Кажется, что промежуточный шаг не нужен, потому что, как правило, аутентификация должна быть логической. Либо они аутентифицированы, либо они не являются. Внутри зоны может быть сложнее обрабатывать все случаи.

+0

В настоящее время у нас есть механизм опроса для сеанса, истекший из-за таймаута, который мы бы адаптировали к этому. Мы могли бы справиться с этим, сделав еще один шаг при входе в систему, но меня больше интересует чистое обращение с выселенным сеансом на стороне пользовательского интерфейса. Я согласен с тем, что безопасность действительно должна быть логической, но я не хочу, чтобы сеанс «волшебным образом» возвращался к экран входа в систему, если последний запрос на недействительный сеанс пойман по запросу, мы не можем обработать статус возврата, то есть изображение или скрипт. – HonkHonkHonk

Смежные вопросы