Login Jsf - problema com o retorno para pagina inicial após Login[RESOLVIDO]

8 respostas
ChristinaMed

Olá galera, estou fazendo um projeto onde implementei um login, que já esta funcionando. O meu único problema esta na hora de entrar na pagina inicial do sistema.
Bem ele entra na pagina inicial do sistema mas me retorna na barra de endereço o login e a senha do usuario.

http://localhost:8084/CORRESYS_1.0/homeCorresys.xhtml?j_idt12%3AformEntrarAdm=j_idt12%3AformEntrarAdm&j_idt12%3AformEntrarAdm%3[color=red]AcampoMatricula=[telefone removido][/color]&j_idt12%3AformEntrarAdm%3[color=red]AcampoSenha=teste[/color]&j_idt12%3AformEntrarAdm%3Aj_idt20=Entrar&javax.faces.ViewState=-2834453734153204122%3A-5637401182289746095&j_idt12_active=0

quero saber o que faço pra que eu nao tenha esse tipo de retorno?

códigos:

<?xml version='1.0' encoding='UTF-8'?>

<!-- =========== FULL CONFIGURATION FILE ================================== -->

<faces-config version="2.1"
    xmlns="http://java.sun.com/xml/ns/javaee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_2_1.xsd">
    
    <managed-bean>
        <managed-bean-name>loginAdmMB</managed-bean-name>
        <managed-bean-class>beans.LoginAdmMB</managed-bean-class>
        <managed-bean-scope>session</managed-bean-scope>
    </managed-bean>
    <managed-bean>
        <managed-bean-name>loginAlunoMB</managed-bean-name>
        <managed-bean-class>beans.LoginAlunoMB</managed-bean-class>
        <managed-bean-scope>session</managed-bean-scope>
    </managed-bean>
    <managed-bean>
        <managed-bean-name>loginCorretorMB</managed-bean-name>
        <managed-bean-class>beans.LoginCorretorMB</managed-bean-class>
        <managed-bean-scope>session</managed-bean-scope>
    </managed-bean>
    
    <navigation-rule>
    <from-view-id>/homeCorresys.xhtml</from-view-id>
    <navigation-case>
      <from-outcome>sucesso</from-outcome>
      <to-view-id>/administrador.xhtml</to-view-id>
    </navigation-case>
    <navigation-case>
      <from-outcome>erro</from-outcome>
      <to-view-id>/homeCorresys.xhtml</to-view-id>
    </navigation-case>
  </navigation-rule>
    
</faces-config>
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://java.sun.com/jsf/html" 
      xmlns:p="http://primefaces.org/ui"
      xmlns:f="http://java.sun.com/jsf/core">

    <f:view contentType="text/html">

        <h:head>
            <f:facet name="first">
                <meta content='text/html; charset=UTF-8' http-equiv="Content-Type"/>
                <title>Corresys_IFRN</title>
            </f:facet>
        </h:head>

        <h:body>

            <p:layout fullPage="true">

                <p:layoutUnit position="north" size="100" resizable="true" closable="true" collapsible="true">
                    <center for="nome" style="color:cornflowerblue"> 
                        <h1> 
                            CORRESYS
                        </h1>   
                    </center>
                </p:layoutUnit>

                <p:layoutUnit position="center" resizable="true" visible="true">

                    <form> 

                        <center>

                            

                                <p:accordionPanel value="LOGIN">  
                                    <p:tab title="LOGIN DO ADMINISTRADOR">  

                                        <h:form id="formEntrarAdm">

                                            <br/>
                                            <h:messages style="color:red"/>
                                            <h:outputText value="Matrícula "/>
                                            <p:inputMask id="campoMatricula" value="#{loginAdmMB.matricula}" required="true" requiredMessage="Campo obrigatório" validatorMessage="Matrícula errada" maxlength="10" mask="[telefone removido]" >
                                            </p:inputMask>
                                            <br/>
                                            <br/>
                                            <h:outputText value="Senha "/>
                                            <p:password id="campoSenha" value="#{loginAdmMB.senha}" required="true" requiredMessage="Campo obrigatório" maxlength="30"/>
                                            <br/>
                                            <br/>
                                            <h:commandButton value="Entrar" action="#{loginAdmMB.logar()}"/>

                                        </h:form>

                                    </p:tab>  

                                    <p:tab title="LOGIN DO ALUNO"> 

                                        <h:form id="formEntrarAlu" >

                                            <br/>
                                            <h:messages style="color:red"/>
                                            <h:outputText value="Matrícula "/>
                                            <p:inputMask id="campoMatricula" value="#{loginAlunoMB.matricula}" required="true" requiredMessage="Campo obrigatório" validatorMessage="Matrícula errada" maxlength="10" mask="[telefone removido]" >
                                            </p:inputMask>
                                            <br/>
                                            <br/>
                                            <h:outputText value="Senha "/>
                                            <p:password id="campoSenha" value="#{loginAlunoMB.senha}" required="true" requiredMessage="Campo obrigatório" maxlength="30"/>
                                            <br/>
                                            <br/>
                                            <h:commandButton value="Entrar" action="#{loginAlunoMB.logar()}"/>

                                        </h:form>
                                    </p:tab>  

                                    <p:tab title="LOGIN DO CORRETOR"> 
                                        <h:form id="formEntrarCor">

                                            <br/>
                                            <h:messages style="color:red"/>
                                            <h:outputText value="Matrícula "/>
                                            <p:inputMask id="campoMatricula" value="#{loginCorretorMB.matricula}" required="true" requiredMessage="Campo obrigatório" validatorMessage="Matrícula errada" maxlength="10" mask="[telefone removido]" >
                                            </p:inputMask>
                                            <br/>
                                            <br/>
                                            <h:outputText value="Senha "/>
                                            <p:password id="campoSenha" value="#{loginCorretorMB.senha}" required="true" requiredMessage="Campo obrigatório" maxlength="30"/>
                                            <br/>
                                            <br/>
                                            <h:commandButton value="Entrar" action="#{loginCorretorMB.logar()}" />

                                        </h:form>

                                    </p:tab>  

                                </p:accordionPanel> 

                           

                        </center>

                    </form>

                </p:layoutUnit>

                <p:layoutUnit position="south" size="50" closable="true" collapsible="true">

                </p:layoutUnit>

            </p:layout>

        </h:body>

    </f:view>
</html>
@ManagedBean
@SessionScoped
public class LoginAdmMB {

    private Administrador administrador = new Administrador();
    
    private String matricula ="";
    
    private String senha="";
    
    private AdministradorJpaController dao = new AdministradorJpaController(EMF.getEntityManagerFactory());
    
    private boolean logado = false;
    
    private String mensagem ;
    
    
    public LoginAdmMB() {
    }
    
    public boolean validarLogin(){
        Administrador adm = dao.findAdm(matricula , senha);
        if (adm != null){
            administrador = adm;
            AdministradorMB umb = FacesUtil.getAdministradorMB();
            umb.setAdministrador(administrador);
            
            return true;
        } else {
            return false;
        }
    }

    public String getMensagem() {
        return mensagem;
    }

    public void setMensagem(String mensagem) {
        this.mensagem = mensagem;
    }
    
    public Administrador getAdministrador() {
        return administrador;
    }

    public void setAdministrador(Administrador administrador) {
        this.administrador = administrador;
    }

    /**
     * @return the logado
     */
    public boolean isLogado() {
        return logado;
    }
    
    /**
     * setLogado como verdadeiro. 
     */
    private void setLogado(){
        logado = true;
    }
    
    /**
     * setDeslogado como falso.
     */
    private void setDeslogado(){
        logado = false;
    }
    
    /**
     * @return the matricula
     */
    public String getMatricula() {
        return matricula;
    }

    /**
     * @param matricula the matricula to set
     */
    public void setMatricula(String matricula) {
        this.matricula = matricula;
    }
    
    /**
     * 
     * @return a página inicial da sessao do administrador.
     */
    public String logar(){
       boolean aux = validarLogin(); 
        if (aux== true){
            return "sucesso";
        } else {
            FacesUtil.adicionarMensagem("formEntrarAdm", "E-mail e senha não conferem !");
            return null;
        }
    }
    
    /**
     * 
     * @return a página inicial.
     */
    public String deslogar(){
        setDeslogado();
        administrador = new Administrador();
        matricula = "";        
        senha = "";
        return "erro";
    }
    /**
     * @return the senha
     */
    public String getSenha() {
        return senha;
    }

    /**
     * @param senha the senha to set
     */
    public void setSenha(String senha) {
        this.senha = senha;
    }
}
public class AdministradorJpaController implements Serializable {

    public AdministradorJpaController(EntityManagerFactory emf) {
        this.emf = emf;
    }
    private EntityManagerFactory emf = null;

    public EntityManager getEntityManager() {
        return emf.createEntityManager();
    }

   ...

    public List<Administrador> findAdministradorEntities() {
        return findAdministradorEntities(true, -1, -1);
    }

    public List<Administrador> findAdministradorEntities(int maxResults, int firstResult) {
        return findAdministradorEntities(false, maxResults, firstResult);
    }

    private List<Administrador> findAdministradorEntities(boolean all, int maxResults, int firstResult) {
        EntityManager em = getEntityManager();
        try {
            CriteriaQuery cq = em.getCriteriaBuilder().createQuery();
            cq.select(cq.from(Administrador.class));
            Query q = em.createQuery(cq);
            if (!all) {
                q.setMaxResults(maxResults);
                q.setFirstResult(firstResult);
            }
            return q.getResultList();
        } finally {
            em.close();
        }
    }

    public Administrador findAdministrador(Long id) {
        EntityManager em = getEntityManager();
        try {
            return em.find(Administrador.class, id);
        } finally {
            em.close();
        }
    }

    
    
    public Administrador findAdm (String matricula, String senha){
        EntityManager em = getEntityManager();
        TypedQuery<Administrador> query;
        query = em.createQuery("select adm from Administrador adm where adm.matricula=:matricula" +
                               " and adm.senha=:senha", Administrador.class);
        query.setParameter("matricula", matricula);
        query.setParameter("senha", senha);
        try{
            return query.getSingleResult();
        }catch(NoResultException e){
            return null;
        }
    }
}

vcs conseguem identificar algum problema no código?

8 Respostas

ChristinaMed

alguém pode me ajudar?

JARDEL_RODRIGUES

method = get
acontece que os parâmetros que foi preenchidos vão ser enviado por url.

method = post
Não retorna os valores na url.

Por padrão se voce nao citar nenhum deles no seu formulário, será enviado via method get.

ChristinaMed

Obrigado pela ajuda, mas usei o [color=red]method = post [/color], assim , dentro do [color=darkred]<h:form id=“formEntrarAdm” method = “post” >[/color] e esse método não existe dentro do <h:from>.

Então pesquisei os usos do [color=red]method = post[/color] , mas só encontrei ele sendo usado no [color=red][/color], tentei mudar o código colocando o no lugar do <h:form> e o meu login deixou de funcionar. também testei usando os dois form. E também não funcionou.

Então alguém tem ideia o que devo fazer. Ou onde devo colocar o [color=red] method=post [/color] , no meu formulário?

JARDEL_RODRIGUES

Dá uma olhada aqui vai te ajudar

http://uaihebert.com/?p=751

ChristinaMed

Irei dar uma olhada.

Mas se tiverem mas sugestões me digam.

ChristinaMed

Conseguir resolver com method=’’ Post’'mesmo. Obg!

JARDEL_RODRIGUES

As regras do forúm são claras, todas as vezes que conseguir resolver seu problema, editar o seu tópico e colocar [RESOLVIDO]

ChristinaMed

:slight_smile:

Criado 12 de maio de 2013
Ultima resposta 27 de jun. de 2013
Respostas 8
Participantes 2