Доступ к объектам сеанса пользователя из другого потока, как это сделать? - PullRequest
0 голосов
/ 10 сентября 2009

Как я могу получить доступ к объектам сеанса пользователя из другого потока?

Я хочу удалять некоторых пользователей на регулярной основе. Я могу просто удалить их из базы данных, но какой-то пользователь может войти в систему . Поэтому я хочу лишить законной силы его сеанс, если он существует. Как я могу найти и сделать недействительным его сеанс , используя его userId?

Как я понимаю, контейнер сервлета имеет некоторую хеш-подобную структуру для хранения отображений "sessionId" => "UserSession". Могу ли я получить к ним доступ? Могу ли я как-то хранить userIds как ключи в этой структуре?

Альтернатива, которая мне не нравится, заключается в проверке базы данных на предмет существования объекта пользователя в начале каждого пользовательского запроса.

Ответы [ 2 ]

4 голосов
/ 10 сентября 2009

Функциональность, которую вы искали существовала, но была удалена из-за проблем безопасности.

Вы сможете воссоздать его, внедрив HttpSessionListener , чтобы создать собственную запись о том, какие активные сеансы существуют.

3 голосов
/ 10 сентября 2009

Вы можете отслеживать свои сеансы, внедрив SessionListener и зарегистрировав его в своем web.xml.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...