在我的 JSF 应用程序中,我得到当前登录用户的名称,如下所示......
public String getLoggedInUsername() {
return FacesContext.getCurrentInstance().getExternalContext().getRemoteUser();
}
...我检查用户是否像这样登录...
public boolean isSignedIn() {
return (getLoggedInUsername() != null);
}
...当用户退出时,我这样做...
public String doLogout() {
FacesContext facesContext = FacesContext.getCurrentInstance();
HttpSession httpSession = (HttpSession)facesContext.getExternalContext().getSession(false);
httpSession.invalidate();
return "main";
}
我的问题是在 doLogout() 之后,getLoggedInUsername() 仍然返回登录用户的名称。我应该怎么做才能确保 getRemoteUser() 在注销后返回 null?
或者,是否有比仅检查用户名更好的方法来获取 if isSignedIn() ?
谢谢!抢