he añadido un filtro en mi aplicacion web para que nose permita el acceso a ciertas zonas de la web si no estas correctamente logueado, el filtro funciona pero no entiendo muy bien porque me pasa dos veces, cuando en realidad deberia pasarme solo una.
El codigo es el siguiente:
Código JAVA:
Ver original
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { // TODO Auto-generated method stub // place your code here HttpServletResponse httpResponse = ((HttpServletResponse)response); HttpServletRequest httpRequest = ((HttpServletRequest) request); UsuarioVO usuario = (UsuarioVO) httpRequest.getSession().getAttribute("usuario"); if(usuario!=null && usuario.getNivelUsuario()==4){ chain.doFilter(request, response); } else{ httpResponse.sendRedirect(httpRequest.getContextPath()+"/gestionErrores.htm"); } }
Y este es el mapeo en el web.xml de mi aplicacion:
Código XML:
Ver original
<filter> <filter-name>FiltroAccesoAutores</filter-name> <filter-class>filters.FiltroAccesoAutores</filter-class> </filter> <filter-mapping> <filter-name>FiltroAccesoAutores</filter-name> <url-pattern>/privado/*</url-pattern> </filter-mapping>
Y este al controlador que accede si se pasa el filtro correctamente, que me retorna a una JSP:
Código JAVA:
Ver original
@Controller public class ControladorGestionErrores { @RequestMapping("gestionErrores") return "errorAcceso"; } }
cuando llamo por ejemplo a privado/administracion.htm estando logueado correctamente
El mensaje "EL FILTRO ESTA FUNCIONANDO" se me imprime dos veces por consola, lo que indica que el filtro pasa dos veces.. y no entiendo porque... alguien que me pueda resolver esta duda?