В моем приложении 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(), чем просто проверка имени пользователя?
Спасибо! Роб