Я использую JSF 1.2 с Richfaces и Facelets.
У меня есть приложение с множеством bean-компонентов с ограниченным сеансом и некоторыми bean-компонентами приложения.
Пользователь входит, скажем, в Firefox. Сессия создается с ID = "A"; Затем он открывает Chrome и снова входит в систему с теми же учетными данными. Сеанс создается с ID = "B".
Когда сеанс «B» создан, я хочу иметь возможность уничтожить сеанс «A». Как это сделать?
Также. когда пользователь в Firefox что-то делает, я хочу иметь возможность отображать всплывающее окно или какое-то уведомление, говорящее: «Вы вышли из системы, потому что вы вошли в систему из другого места».
У меня есть sessionListener, который отслеживает созданные и уничтоженные сеансы. Дело в том, что я могу сохранить объект HTTPSession в bean-компоненте с областью действия приложения и уничтожить его, когда я обнаружу, что пользователь вошел в систему дважды. Но что-то мне подсказывает, что это неправильно и не сработает.
JSF отслеживает сеансы где-нибудь на стороне сервера? Как получить к ним доступ по идентификатору? Если нет, как выгнать пользователя при первом входе в систему, когда он входит в систему дважды?