JSF déconnexion à l'aide de session.invalider ne pas effacer le nom d'utilisateur?

Dans mon JSF application, j'obtiens le nom de la signé à l'utilisateur comme ceci ...

public String getLoggedInUsername() {
  return FacesContext.getCurrentInstance().getExternalContext().getRemoteUser();
}

... et je vérifie si l'utilisateur est connecté comme ça ...

public boolean isSignedIn() {
  return (getLoggedInUsername() != null);
}

... et lorsque l'utilisateur se connecte, je fais ce ...

public String doLogout() {
  FacesContext facesContext = FacesContext.getCurrentInstance();
  HttpSession httpSession = (HttpSession)facesContext.getExternalContext().getSession(false);
  httpSession.invalidate();
  return "main";
}

Mon problème, c'est après doLogout(), le getLoggedInUsername() renvoie toujours le nom de l'utilisateur qui est connecté. Que suis-je censé faire pour s'assurer que getRemoteUser() renvoie la valeur null après déconnexion?

En alternance, est-il une meilleure façon d'obtenir si isSignedIn() que la simple vérification du nom d'utilisateur?

Merci!
Rob

Avez-vous déboguer les méthodes de lui-même, ou avez-vous deviné/conclure vous-même basé sur la façon dont le navigateur se comporte? La page peut être une simple demande à partir du cache du navigateur...
Oui, j'ai débogué. J'ai frappé à la doLogout() la méthode, après c'est terminé, j'ai frappé à la getLoggedInUsername() et retourne le nom de l'utilisateur est le gars qui a été connecté (même après la séance.invalider a été exécuté). Des idées?
Je ne sais pas si je t'envoie une redirection. 🙂 Je suppose que je suis en utilisant quel que soit le comportement par défaut est, sur doLogOut() le navigateur feuilles quelle que soit la page que j'ai été sur et montre les principales.jsf page (que vous n'avez pas à être connecté à voir, par la voie). Est-ce que c'est?
Oui, j'ai déjà deviné. J'ai supprimé le commentaire et l'a transféré à une réponse avant de commenté. C'est une redirection lors de l'URL dans la barre d'adresse du navigateur changements à l'URL cible au lieu de coller de l'URL à laquelle le formulaire est soumis.

OriginalL'auteur Robert Hume | 2011-02-04