2011-01-03 5 views
2

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

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

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

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

спасибо за ваш ответ наилучшими пожеланиями

ответ

9

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

<listener> 
    <listener-class> 
     org.springframework.security.web.session.HttpSessionEventPublisher 
    </listener-class> 
</listener> 
+0

вы правы. Благодарю. –

1

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

0

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

Вы пытаетесь следующее:

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

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

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