puedo crear este filtro:¿Cómo se filtra una web en JSF 2?
public class LoginFilter implements Filter {
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
HttpServletRequest req = (HttpServletRequest) request;
HttpSession session = req.getSession();
if (session.getAttribute("authenticated") != null || req.getRequestURI().endsWith("login.xhtml")) {
chain.doFilter(request, response);
} else {
HttpServletResponse res = (HttpServletResponse) response;
res.sendRedirect("login.xhtml");
return;
}
}
@Override
public void init(FilterConfig filterConfig) throws ServletException {
}
@Override
public void destroy() {
}
}
Ésta es mi estructura:
Y luego agregar el filtro en el web.xml:
<filter>
<filter-name>LoginFilter</filter-name>
<filter-class>filter.LoginFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>LoginFilter</filter-name>
<servlet-name>Faces Servlet</servlet-name>
</filter-mapping>
funciona el filtro como debería pero me sigue dando este error:
"Was not possible find or provider the resource, login"
Y después de eso mi richfaces ya no funciona.
¿Cómo puedo resolver eso? ¿O crear un filtro web correctamente?
Ese es un mensaje de error extraño. ¿Lo tradujo de otro idioma? ¿Es solo un error HTTP 404? – BalusC
Yo hago BalusC, soy de Brasil, entonces el error aparece en portugués, ¿sabes cómo puedo cambiar el Eclipse al inglés? Entonces podría publicar el error original. –
El idioma predeterminado de Eclipse depende de la configuración regional predeterminada de la plataforma. Entonces, si su sistema operativo está configurado en portugués, Eclipse heredará esta configuración. Pero puede anular esto especificando el argumento '-nl [languagecode]' en 'eclipse.exe'. Por ejemplo: 'eclipse.exe -nl en' lo configurará en inglés. – BalusC