В моем приложении 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 после выхода из системы?
С другой стороны, есть ли лучший способ получить isSignedIn (), чем просто проверка имени пользователя?
Спасибо!
Rob