странное поведение весеннего сеанса безопасности параллелизма - PullRequest
2 голосов
/ 03 января 2011

Я считаю, что Spring Security, параллелизм сессии очень странный.

<sec:session-management>
        <sec:concurrency-control max-sessions="1" error-if-maximum-exceeded="true" />
</sec:session-management>

код означает, что только один пользователь может войти в систему вовремя.

  1. я успешновойти, чем нажать кнопку выхода.Выйти успешно (я больше не получаю свое имя пользователя).но когда я пытаюсь повторно войти, я просто получаю исключение, что максимальный сеанс превышен.безопасность сеанса весной не удаляется четко?
  2. я завершаю вход в систему.и я вышел, я пытаюсь войти снова.я все еще могу войти.но когда я второй раз перехожу, я получаю исключение, что максимальный сеанс превышен.я думаю, что это должно быть отклонено при входе в систему при первой попытке повторной регистрации.

спасибо за ваш ответ С уважением

Ответы [ 3 ]

9 голосов
/ 03 января 2011

Убедитесь, что вы не забыли настроить прослушиватель в web.xml, как требуется для управления сеансом:

<listener>
    <listener-class>
        org.springframework.security.web.session.HttpSessionEventPublisher
    </listener-class>
</listener>
1 голос
/ 03 января 2011

Я полагаю, что весенней безопасности не было приказано сделать текущий сеанс недействительным при выходе из системы. Это может быть сделано с помощью элемента <logout>, как задокументировано здесь

0 голосов
/ 03 января 2011

Я думаю, что Рагурам прав.

Вы попробуйте следующее:

<logout invalidate-session="true" logout-url="/logout.htm"
logout-success-url="/login.jsp?loggedout=true" />

Здесь я отменяю сессию при выходе и перенаправляю пользователя на страницу входа Надеюсь, это полезно. Если это не так, дайте мне знать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...