Уничтожение определенного пользовательского сеанса в JSF - PullRequest
1 голос
/ 20 ноября 2011

На моей странице есть административная панель для управления пользователями.
Предположим, я удаляю или блокирую любого пользователя, и этот пользователь уже вошел на мою веб-страницу.

Как я могу уничтожить его / ее сеанс?

Пользователи входят в систему через j_security_check
(HttpServletRequest) FacesContext.getCurrentInstance().getExternalContext().getRequest().login(getUsername(), getPassword());

Использование:

  • JSF 2.1
  • Primefaces 2.2.1
  • Glassfish 3.1

Ответы [ 2 ]

2 голосов
/ 20 ноября 2011

Вы можете поместить какой-либо флаг «недействительно» в карту уровня приложения или в базу данных и иметь фильтр сервлета, проверяющий при каждом запросе, что флаг «недействительно» текущего пользователя не установлен.

0 голосов
/ 20 ноября 2011

Вы можете использовать метод sesssionObject.invalidate(), чтобы сделать это следующим образом.

 HttpSession session= 

(HttpSession)FacesContext.getCurrentInstance().getExternalContext().getSession(true);

 session.invalidate();

Метод invalidate() объекта сеанса уничтожит текущий текущий сеанс.

...