Help with post login menu in JSF in Javaweb

Asked

Viewed 180 times

1

Talk to the guys, all right? I’m making a project manager in Javaweb with Hibernate, TDD, MVC, JSF, Primefaces and more I don’t remember kk, Next, when I log in to my project I make the menu appear but when I click on some function, it disappears. The authentication test is working ok but it is as if the user closes and loses the login.

Logging in appears:

When I click on any function, it disappears:

inserir a descrição da imagem aqui

The Menu is done like this in JSF:

<p:submenu label="Usuários" rendered="#{autenticacaoBean.usuarioLogado.funcao != null}">
        <p:menuitem value="Pesquisa e Listagem" outcome="/pages/usuarioPesquisa.xhtml" icon="ui-icon-search" />
        <p:menuitem value="Criar" outcome="/pages/usuarioCadastro.xhtml" icon="ui-icon-disk">
             <f:param name="usuAcao" value="criar" />
        </p:menuitem>
    </p:submenu>

The login part looks like this:

<h:form>

    <h:panelGrid columns="2">

    <p:outputLabel value="Email"></p:outputLabel>
    <p:inputText size="30" value="#{autenticacaoBean.usuarioLogado.email}">
    <f:validateBean />
    </p:inputText>

    <p:outputLabel value="Senha"></p:outputLabel>
    <p:password size="30" value="#{autenticacaoBean.usuarioLogado.senha}">
    <f:validateBean />
    </p:password>

    </h:panelGrid>

    <h:panelGrid>

    <p:commandButton value="Entrar" update=":msgGlobal :formLogin:painelMenu"
    actionListener="#{autenticacaoBean.autenticar}"></p:commandButton>

    </h:panelGrid></h:form> 

Bean Authentication is like this:

public class AutenticacaoBean {

private Usuario usuarioLogado;

public Usuario getUsuarioLogado() {
    if(usuarioLogado == null){
        usuarioLogado = new Usuario();
    }
    return usuarioLogado;
}

public void setUsuarioLogado(Usuario usuarioLogado) {
    this.usuarioLogado = usuarioLogado;
}

public void autenticar(){
    try {
        UsuarioDAO usuariodao = new UsuarioDAO();
        usuarioLogado = usuariodao.autenticar(usuarioLogado.getEmail(), DigestUtils.md5Hex(usuarioLogado.getSenha()));

        if(usuarioLogado == null){
            FacesUtil.addMsgErro("Email ou Senha inválidos !");
        } else {
            FacesUtil.addMsgInfo("Usuário Autenticado com sucesso!");
        }

    } catch(RuntimeException ex) {

        FacesUtil.addMsgErro("Erro ao tentar autenticar no sistema.");
    }
}}

and in the User is like this:

public Usuario autenticar(String email, String senha){
    Session sessao = HibernateUtil.getSessionFactory().openSession();
    Usuario usuario = null; 

    try {
        Query consulta = sessao.getNamedQuery("Usuario.autenticar");
        consulta.setString("email", email);
        consulta.setString("senha", senha);
        usuario = (Usuario) consulta.uniqueResult();
    } catch (RuntimeException ex) {
        throw ex;
    } finally {
        sessao.close();
    }
    return usuario;
}

1 answer

1


Autenticacaobean is session-scoped? try adding the @Sessionscoped annotation in Autenticacaobean.

  • I got it, you’re a god <3 haha obg even

Browser other questions tagged

You are not signed in. Login or sign up in order to post.