Bom dia, Pessoal
estou desenvolvendo um sistema com jsf 2.0 e tomcat 7, ao utilizar a classe abaixo para validar se o usuario esta logado ou não aparece o seguinte erro: “Esta página da web tem um loop de redirecionamento” no chrome e nos demais navegadores não aparece nada. Se eu retirar a linha 25 e 26 o sistema executa normal, alguem poderia me ajudar?
package br.com.entecnologia.util;
import javax.faces.context.ExternalContext;
import javax.faces.context.FacesContext;
import javax.faces.event.PhaseEvent;
import javax.faces.event.PhaseId;
import javax.faces.event.PhaseListener;
/**
*
* @author Everton Novaski
*/
public class ValidaPagina implements PhaseListener {
private static final String USER_LOGIN_OUTCOME = "loginInvalido";
@Override
public void afterPhase(PhaseEvent event) {
FacesContext context = event.getFacesContext();
if (userExists(context)) {
return;
} else {
if (requestingSecureView(context)) {
context.responseComplete();
context.getApplication().getNavigationHandler().handleNavigation(context, null, USER_LOGIN_OUTCOME);
}
}
}
@Override
public void beforePhase(PhaseEvent event) {
}
@Override
public PhaseId getPhaseId() {
return PhaseId.RESTORE_VIEW;
}
private boolean userExists(FacesContext context) {
ExternalContext extContext = context.getExternalContext();
return (extContext.getSessionMap().containsKey(Login.USER_SESSION_KEY));
}
private boolean requestingSecureView(FacesContext context) {
ExternalContext extContext = context.getExternalContext();
String path = extContext.getRequestPathInfo();
return (!"/index.xhtml".equals(path) && !"/cadastrar.xhtml".equals(path));
}
}