Bem tentei adptar o codigo que postaste no artigo que referenciaste acima no meu, mas na configuração dá erro e diz que não consegue encontrar o fully qualified name da classe. Abaixo deixo o codigo da classe e do arquivo faces-config.
package mz.com.SistemaArmazemFCSP.phaseListener;
import java.sql.SQLException;
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 mz.com.SistemaArmazemFCSP.DAO.UsuarioDAO;
import mz.com.SistemaArmazemFCSP.domain.Usuario;
public class AutorizacaoPhaseListener implements PhaseListener {
/**
*
*/
private static final long serialVersionUID = 1L;
private UsuarioDAO udao = new UsuarioDAO();
private Usuario usuario;
private FacesContext facesContext;
private NavigationHandler nh;
public FacesContext getFacesContext() {
return facesContext;
}
public void setFacesContext(FacesContext facesContext) {
this.facesContext = facesContext;
}
public Usuario getUsuario() {
return usuario;
}
public void setUsuario(Usuario usuario) {
this.usuario = usuario;
}
public UsuarioDAO getUdao() {
return udao;
}
public void setUdao(UsuarioDAO udao) {
this.udao = udao;
}
public NavigationHandler getNh() {
return nh;
}
public void setNh(NavigationHandler nh) {
this.nh = nh;
}
@Override
public void afterPhase(PhaseEvent event) {
facesContext = event.getFacesContext();
nh = facesContext.getApplication().getNavigationHandler();
Usuario usuario = (Usuario) facesContext.getExternalContext().getSessionMap().get("usuario");
String paginaActual = facesContext.getViewRoot().getViewId();
if (paginaActual.contains("/pages/*")) {
Usuario usuarioRetornado = null;
try {
usuarioRetornado = udao.buscarUsuario(usuario.getUsuario(), usuario.getSenha());
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
if (usuarioRetornado == null) {
nh.handleNavigation(getFacesContext(), null, "index.xhtml?faces-redirect=true");
} else if (usuarioRetornado.getRolestring().equalsIgnoreCase("Admin")) {
nh.handleNavigation(getFacesContext(), null, "indexAdmin.xhtml?faces-redirect=true");
} else if (usuarioRetornado.getRolestring().equalsIgnoreCase("Administrador")) {
nh.handleNavigation(getFacesContext(), null, "indexAdministrador.xhtml?faces-redirect=true");
} else if (usuarioRetornado.getRolestring().equalsIgnoreCase("Funcionario")) {
nh.handleNavigation(getFacesContext(), null, "indexFuncionario.xhtml?faces-redirect=true");
}
} if (paginaActual.contains("/pages/index.xhtml?faces-redirect=true")) {
Usuario usuarioRetornado = null;
try {
usuarioRetornado = udao.buscarUsuario(usuario.getUsuario(), usuario.getSenha());
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
if (usuarioRetornado == null) {
nh.handleNavigation(getFacesContext(), null, "/pages/index.xhtml?faces-redirect=true");
}
}
}
@Override
public void beforePhase(PhaseEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public PhaseId getPhaseId() {
// TODO Auto-generated method stub
return null;
}
}
arquivo faces-config
<?xml version="1.0" encoding="UTF-8"?>
<faces-config xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-facesconfig_2_2.xsd"
version="2.2">
<lifecycle>
<phase-listener>mz.com.SistemaArmazemFCSP.phaseListener.AutorizacaoPhaseListener</phase-listener>
</lifecycle>
</faces-config>