Boa Tarde Galera, tô tendo um pequeno problema e preciso de ajuda.
Criei este PhaseListener para evitar que os usuários entrassem diretamente sem antes validar seu usuário,
package br.com.vteste.listeners;
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;
import javax.servlet.http.HttpSession;
public class AutorizadorAcesso implements PhaseListener {
private static final long serialVersionUID = 1L;
@Override
public void afterPhase(PhaseEvent event) {
FacesContext facesContext = event.getFacesContext();
String currentPage = facesContext.getViewRoot().getViewId();
boolean isLoginPage = (currentPage.lastIndexOf("boasVindas.jsf") > -1);
HttpSession session = (HttpSession) facesContext.getExternalContext().getSession(true);
Object currentUser = session.getAttribute("usuario");
if (!isLoginPage && currentUser == null) {
NavigationHandler nh = facesContext.getApplication().getNavigationHandler();
nh.handleNavigation(facesContext, null, "loginPage");
}
}
public PhaseId getPhaseId() {
return PhaseId.RESTORE_VIEW;
}
@Override
public void beforePhase(PhaseEvent arg0) {
// TODO Auto-generated method stub
}
}
O problema é que o bicho funcionou até demais e não deixa nem validar o usuário mais, todas as vezes que digito e submeto o usuário ele retorno pra página inicial
olha o Managed Bean
package br.com.vteste.validadores;
import java.util.List;
import br.com.vteste.dao.DAOException;
import br.com.vteste.dao.UsuarioDaoLogin;
import br.com.vteste.modelos.Aluno;
import br.com.vteste.modelos.Professor;
import br.com.vteste.modelos.Usuario;
public class ControladorValidaLogin {
private Usuario usuario;
private UsuarioDaoLogin dao;
private String paginaInicial = "";
List<Aluno> listaAlunos;
List<Professor> listaProfessores;
private boolean usuarioNaoEncontrado;
public ControladorValidaLogin(){
usuario = new Usuario();
}
public String validarLogin(){
paginaInicial = validarAluno();
System.out.println(paginaInicial);
return paginaInicial;
}
private String validarAluno() {
String pagina = "";
int i=0;
//LISTA DE ALUNOS
try {
dao = new UsuarioDaoLogin();
listaAlunos = dao.obterListaAlunos();
} catch (DAOException e) {
e.printStackTrace();
}
Aluno aluno = (Aluno) listaAlunos.get(i);
System.out.println(this.usuario.getNome());
if((this.usuario.getUsuario().trim().equalsIgnoreCase(aluno.getUsuario()))&&(this.usuario.getSenha().trim().equalsIgnoreCase(aluno.getSenha()))){
this.usuario = aluno;
System.out.println("Aluno Validado!!");
pagina = "/pages/paginasIniciais/paginaInicialAluno.jsf";
}else{
for(i = 1; i < listaAlunos.size();i++){
aluno = (Aluno) listaAlunos.get(i);
if((this.usuario.getUsuario().trim().equalsIgnoreCase(aluno.getUsuario()))&&(this.usuario.getSenha().trim().equalsIgnoreCase(aluno.getSenha()))){
this.usuario = aluno;
System.out.println("Aluno Validado!!");
pagina = "/pages/paginasIniciais/paginaInicialAluno.jsf";
break;
}
}
}
if (pagina.trim().equalsIgnoreCase("")){
pagina = validarProfessor();
}
return pagina;
}
private String validarProfessor() {
String pagina = "";
int i = 0;
//LISTA DE PROFESSORES
try {
dao = new UsuarioDaoLogin();
listaProfessores = dao.obterListaProfessores();
} catch (DAOException e) {
e.printStackTrace();
}
Professor professor = (Professor) listaProfessores.get(i);
System.out.println(usuario.getNome());
if((this.usuario.getUsuario().trim().equalsIgnoreCase(professor.getUsuario()))&&
(this.usuario.getSenha().trim().equalsIgnoreCase(professor.getSenha()))){
this.usuario = professor;
System.out.println("Professor Validado!!");
pagina = "/pages/paginasIniciais/paginaInicialProfessor.jsf";
}else{
for(i = 1; i < listaProfessores.size();i++){
professor = (Professor) listaProfessores.get(i);
if((this.usuario.getUsuario().trim().equalsIgnoreCase(professor.getUsuario()))&&
(this.usuario.getSenha().trim().equalsIgnoreCase(professor.getSenha()))){
this.usuario = professor;
System.out.println("Professor Validado!!");
pagina = "/pages/paginasIniciais/paginaInicialProfessor.jsf";
break;
}
}
}
if (pagina.trim().equalsIgnoreCase("")){
this.usuarioNaoEncontrado = true;
pagina = "/pages/boasVindas.jsf";
}
return pagina;
}
o faces config,
<navigation-rule>
<from-view-id>/*</from-view-id>
<navigation-case>
<from-outcome>loginPage</from-outcome>
<to-view-id>/pages/boasVindas.jsf</to-view-id>
</navigation-case>
</navigation-rule>
<lifecycle>
<phase-listener>br.com.vteste.listeners.AutorizadorAcesso</phase-listener>
</lifecycle>
</faces-config>
Alguém poderia me ajudar?