У нас есть веб-приложение, которое использует Struts 2, Spring и Hibernate.Недействительный сеанс пользователя в одном браузере при входе пользователя в другой браузер?
В настоящее время пользователь, использующий два разных браузера (IE и FF), может одновременно войти в одну учетную запись.
Теперь, когда вы нажимаете кнопку входа в систему, нам необходимо аннулировать все остальные логины для этой учетной записи.
например. Пользователь входит в учетную запись в Firefox. Тот же пользователь входит в одну учетную запись в IE. В этом случае, когда он входит в IE, его сеанс в firefox должен быть недействительным.
Есть ли способ, которым мы можем это сделать?
Пожалуйста, помогите
Я бы сказал, что вы можете улучшить эти два пути. Чтобы избежать статичности, используйте пружину или гусь, чтобы ввести одноэлемент. Во-вторых, если у вас есть кластер или намеревается перейти на один в ближайшей перспективе, вы должны хранить эту информацию за пределами одного сервера, так как нет гарантии, что второй вход на тот же сервер. Memcached, вероятно, будет работать нормально, хотя я мог бы также увидеть нечто более стойкое, как DB, которое также полезно. Вам понадобится механизм обновления ВСЕХ серверов в кластере, чтобы сообщить им о недействительности дополнительного сеанса. Для этого вам может понадобиться какой-то паб/sub. – rfeak
Да, я согласен, что это было упрощенное представление, не учитывающее кластеризацию. Но, как вы предположили, memcached или аналогичный метод должен работать нормально и заботиться о кластерах. Сессия будет реплицироваться по дизайну (иначе кластеризация не будет работать), поэтому необходимо связать идентификатор пользователя с идентификатором сеанса. –