Dúvida Login JSF + Hibernate

0 respostas
vinnymesquita

Olá Pessoal,
Seguinte, sou iniciante e estou precisando de ajuda na parte de login onde preciso buscar na sessão os dados do usuario logado e jogar na sua página de Cadastro com os dados do cadastro anteriormente efetuado, não estou sabendo fazer esta busca na sessão.
Tenho a entidade Login com o Id, usuario, senha e o IdFkEmpresa e outra entidade com os dados da Empresa como idEmpresa e demais atributos... Segue abaixo meu código de login.
Se alguém puder me ajudar fico muito grato!

[code]package controle;

import org.hibernate.Query;
import org.hibernate.Session;

import util.HibernateUtil;

import entidades.Empresa;
import entidades.Login;

public class LoginHandler{
	
	Empresa empresa = new Empresa();
	Login login = new Login();
	private String usuario;
	private String senha;
	private boolean logado = false;
	
		
	public Login buscaLogin (String usuario, String senha)  {
			//Cria a sessao com o banco e a transacao...
			Session session = HibernateUtil.getSession();
						
			Query q = session.createQuery("from Login u where u.usuario = :usuario and u.senha = :senha");		
			q.setParameter("usuario", usuario);
			q.setParameter("senha", senha);
			Login login = (Login) q.uniqueResult();
			return login;
	}

	public String logar(){
		 		        
        try {
        	if (buscaLogin(usuario, senha)!= null){
        	System.out.println("login com sucesso");
        	
        	
        	
			return "sucesso";
		}else{
			System.out.println("Login falhou");
			return "erro";
		}	
			
		} catch (Exception e) {
			e.printStackTrace();   
            return "failure"; 
		}
			
		}

	public String getUsuario() {
		return usuario;
	}

	public void setUsuario(String usuario) {
		System.out.println("mudando o login para: "+ usuario);
		this.usuario = usuario;
	}

	public String getSenha() {
		return senha;
	}

	public void setSenha(String senha) {
		this.senha = senha;
	}

	public boolean isLogado() {
		return logado;
	}

	public void setLogado(boolean logado) {
		this.logado = logado;
	}

	public Login getLogin() {
		return login;
	}

	public void setLogin(Login login) {
		this.login = login;
	}

	public Empresa getEmpresa() {
		return empresa;
	}

	public void setEmpresa(Empresa empresa) {
		this.empresa = empresa;
	}
}
package controle;

import javax.el.ELResolver;
import javax.faces.application.NavigationHandler;
import javax.faces.context.FacesContext;
import javax.faces.event.PhaseEvent;
import javax.faces.event.PhaseId;
import javax.faces.event.PhaseListener;


public class Autorizador implements PhaseListener{
	
	
	
	public static final String loginPage = "login.jsp";
	
	public void afterPhase(PhaseEvent event) {
		
		FacesContext fc = event.getFacesContext();
		  
		if (fc.getViewRoot().getViewId().equals(loginPage)){
			
			return;
		}
		
		ELResolver elr = fc.getApplication().getELResolver();
		LoginHandler login = (LoginHandler) elr.getValue(fc.getELContext(), null, "autenticador");
		
		if (login == null || login.isLogado()){
			
			System.out.println("Não está logado...");
			
			//redireciona para o login
			NavigationHandler nav = fc.getApplication().getNavigationHandler();
			nav.handleNavigation(fc, null, "login");
			
			//renderiza a pagina
			fc.renderResponse();
		}
	}

	public void beforePhase(PhaseEvent event) {
		// TODO Auto-generated method stub
		
	}

	public PhaseId getPhaseId() {
		return PhaseId.RESTORE_VIEW;
	}
}
Criado 5 de agosto de 2008
Respostas 0
Participantes 1