JSF Bean e Session

Olá,

Estou com um problema relacionado á JSF.

eu tenho uma tela de Login de usuáruio com a seguinte estrutura:

<p:panel style="background-color: #f5f5f5;height: 300px;border: 0px;">
                                <br/><br/>
                                <h:outputText styleClass="letras" value="Entrar" style="font-size: 20px"/>
                                <br/><br/>
                                <h:outputText styleClass="letras" value="Nome de usuario" style="font-size: 17px;"/>
                                <br/>
                                <h:inputText id="campousuario" size="40" style="height: 30px" required="true" requiredMessage="Campo obrigatorio" value="#{login.login}"/>
                                <br/><br/>
                                <h:outputText styleClass="letras" value="Senha" style="font-size: 17px;" />
                                <br/>
                                <h:inputSecret id="camposenha" size="40" style="height: 30px" required="true" requiredMessage="Campo obrigatorio" value="#{login.senha}"/>
                                <br/><br/>
                                <p:commandButton value="Entrar" style="width: 50%" action="#{login.validarAcesso()}" ajax="false"/>
                                <p:commandButton value="Limpar"/>
                                <br /><br />
                                <h:commandLink value="Nao consegue acessar a conta?" style="color: blue"/>
                            </p:panel>

o bean que gerencia isso é:

@ManagedBean(name = "login")
@SessionScoped
public class Login implements Serializable {

    private String login;
    private String senha;
    private String nome;
    /*Getters e Setters*/

   public String validarAcesso() {
        String servidor = "Nome do servidor"
        String dominio = "Nome do domínio";
        ArrayList<String> grupos  = Ldap.Autenticar(login, senha , servidor, dominio);
        if (grupos != null) {
            this.nome = this.nomeUsuario(login);
            return "template.xhtml";
        } else {
            FacesContext.getCurrentInstance().addMessage(null, new FacesMessage("Usuário e/ou senha inválida"));
            return "index.xhtml";
        }
    }

Beleza, o servidor autentica o usuário e ele é direcionado para a página ‘template.xhtml’ que tem uma opção para mostrar o nome do usuário que é o atributo ‘nome’, na primeira vez que a tela aparece o nome da pessoa aparece corretamente, porém ao atualizar o navegador com o F5 o nome some, como se o atributo ‘nome’ estivesse nulo.

a tela aonde aparece o nome:

                            <h:form id="form_pref_user">
                                <p:menubar id="btnPreferenciasUsuario" style="background-color: #244062; border: 0px; color: #FFFFFF">
                                    <p:submenu label="#{login.nome}" icon="ui-icon-document">
                                        <p:menuitem value="Alterar Senha"/>
                                        <p:menuitem value="Sair" onclick="#{login.logout()}" url="index.xhtml"/>
                                    </p:submenu>
                                </p:menubar>
                            </h:form>

Alguém tem alguma ideia?

Problema resolvido.

O problema é que no método de logout a opção session.invalidate() e de alguma forma este método estava sendo chamado e invalidando a sessão, desta forma os dados se perdiam.

Reorganizei os <h:form> da aplicação e agora está tudo funcionando.

Obrigado da mesma forma.