[tomcat+j2ee] убить сессии во всех браузерах
Допустим, юзер авторизовался на сайте с разных браузеров. Как можно убить все сессии данного юзера во всех браузерах. По аналогии c кнопкой в гмейле "Выйти из всех остальных сеансов".Например, на стороне сервера удалить данные о всех сессиях данного пользователя из БД.
Браузеры тут не при чём, как мне кажется.
Сессии не хранятся в БД, с ними работает томкат, привязываю её к юзеру через куку.
Надо отформатировать у пользователя диск и перезагрузить компьютер, тогда точно сработает.
Простого способа, судя по всему, нет.
мда, спасибо, видимо простого способа нет.
а нельзя где-нить хранить времена обнуления сессий (per user) и потом сравнивать его со временем создания HttpSession?
не совсем понял, как это может помочь. Могло бы помочь, думаю ,если для каждой авторизации юзера хранить jsessionid с указанием логина, и в случае чего инвалидировать все сессии юзера по jsessionid, но это мои фантазии, которые могут быть далеки от реальности.
logoutUser(login) {
globalStorage.set(login, getTime());
}
someFunc(...) {
HttpSession session = getSession(...);
if(globalStorage.get(login) > session.getCreationTime())
session = null;
// do stuff
}
но в зависимости от организации кода это может быть геморно, конечно
понял, но в общем по-сути тот же самый подход, что я предложил, то есть дополнительно хранить что-то характеризующее сессию с привязкой к юзеру.
необходимо не просто привязать идентификаторы к каждой сессии, но еще и хранить на сервере список идентификаторов всех валидных сессий для данного пользователя.
понял, но в общем по-сути тот же самый подход, что я предложил, то есть дополнительно хранить что-то характеризующее сессию с привязкой к юзеру....только дополнительная информация хранится не к сессии, а к юзеру.
Оставить комментарий
SergeRRRRRR
Допустим, юзер авторизовался на сайте с разных браузеров. Как можно убить все сессии данного юзера во всех браузерах. По аналогии c кнопкой в гмейле "Выйти из всех остальных сеансов".