Duda sobre filtros

nigreton
09 de Febrero del 2008
Hola a todos, a ver si me pueden ayudar:
Tengo un filtro en mi aplicación que controla que los usuario no accedan a ninguna parte de mi aplicación a menos que se hayan registrado previamente. Para ello tengo el siguiente código:

public void doFilter(ServletRequest arg0, ServletResponse arg1, FilterChain arg2) throws IOException, ServletException {
HttpSession sesion = ((HttpServletRequest)arg0).getSession(true);

//recojo la página a la que el usuario desea acceder
String solicitud = ((HttpServletRequest)arg0).getRequestURI();

//si esta intentando identificarse, le dejaría que lo hiciese
if ( solicitud.equals("/aplicacion/compruebaUsuario.do") || solicitud.equals("/aplicacion/index.jsp") ){
//le dejaría que siguiese navegando :( aquí es donde me falla
arg2.doFilter((HttpServletRequest)arg0, (HttpServletResponse)arg1);
}if ( sesion.getAttribute("usuario") == null ) {
//si el usuario no se ha registrado le envío a la página de inicio
((HttpServletResponse)arg1).sendRedirect(
((HttpServletRequest)arg0).getContextPath() + "/index.jsp" );
}
}

creo que el problema lo da en el arg0.dofilter, ya que entra en un bucle, y el explorador me dice "está redirigiendo el pedido para esta dirección en una forma que nunca se completará.".
¿Como haría para dejarle seguir navegando si está tratando de validarse?

Muchas gracias y un saludo a todos.