如何删除用户SessionScoped?

时间:2012-05-09 04:04:24

标签: session jsf-2

我尝试在JSF 2.0中执行注销功能。首先,我给AUTH_KEY记录用户。注销后我删除了这个用户的AUTH_KEY。 对于不删除的用户会话,我的问题是无法注销。

登录功能部分:

if (startupInfo.getConnectionId().equals("success")) {
                    FacesContext.getCurrentInstance().getExternalContext()
                            .getSessionMap()
                            .put(AUTH_KEY, loggedUserInfo.getUserId());
                    return "success";
                }

退出

    public String logout() {
    FacesContext.getCurrentInstance().getExternalContext().getSessionMap().remove(AUTH_KEY);

    return "logout";
}

1 个答案:

答案 0 :(得分:0)

您应该在注销方法中使HTTP会话无效。删除用户信息不会导致会话终止:

HttpSession session = (HttpSession) FacesContext.getCurrentInstance()
                        .getExternalContext().getSession(false);
if (session != null) {
  session.invalidate();
}