1

我尝试在 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";
}
4

1 回答 1

0

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

HttpSession session = (HttpSession) FacesContext.getCurrentInstance()
                        .getExternalContext().getSession(false);
if (session != null) {
  session.invalidate();
}
于 2012-05-09T06:25:18.467 回答