Duda sobre filtros
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.
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.
