2015-11-10 5 views
3

Я читал на этом сайте и документировал настройку параллельного управления сеансом, что я не знал, что Spring справляется так хорошо.Spring mvc 4 Параллельный контроль сеанса

Примеры: Question 1 Question 2 среди других ....

Однако я не могу найти, как это сделать сделать это программно (не контекст приложения) в Spring версии 4 контроллера (пружины 4 - аннотированный).

<http> 
    ... 
    <session-management> 
    <concurrency-control max-sessions="1" /> 
    </session-management> 
</http> 

Я прочитал о ConcurrentSessionControlAuthenticationStrategy, ConcurrentSessionControlStrategy, CompositeSessionAuthenticationStrategy, но не смогли реализовать. То, что я пытаюсь сделать, это убедиться, что пользователь может только войти в систему один раз, и если кто-то еще входит в систему с тем же именем пользователя, он дает им страницу с ошибкой.

Цените любую помощь или совет ...

ответ

0

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

... безопасность: параллелизм-контроль макс-сессия = «1» ошибка, если-maximum- превышена = «истинная» ..

+0

я уже НЕ в XML -> только программно. –

+0

Хорошо, я просто пропустил его –

0

надеюсь, вы можете это сделать, реализовав интерфейс javax.servlet.http.HttpSessionBindingListener и зарегистрировав его как ServletContextlistener через конфигурацию java.

См: How to invalidate another session when an user is logged in twice?

+0

Спасибо за ответ, но я стараюсь не выпускать нового пользователя, а не изгнать оригинального зарегистрированного пользователя. –

+0

Конечно, это зависит от вас. Если вы обнаружите, что тот же пользователь пытается снова войти в систему, вы можете аннулировать вновь созданный сеанс или существующий. – Lovababu

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