Olá, pessoal!
Tenho um filtro na minha aplicação para bloquear acesso direto a qualquer página caso o usuário não esteja logado, redirecionando-o para a página de login, e está funcionando normalmente, cumprindo essa função, porém tenho um problema. Ao implementar o filtro, como o menu da minha aplicação foi feito com RichFaces, sempre que chamo uma opção do menu, ele abre uma página redirecionando para a página de login
Vocês tem alguma idéia do que possa estar acontecendo?
Segue o filtro:
public class AuthFilter implements Filter {
private static final boolean debug = true;
private FilterConfig filterConfig = null;
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain)
throws IOException, ServletException {
boolean auth = request.getAttribute("user") != null;
HttpServletRequest rq = (HttpServletRequest) request;
HttpServletResponse rp = (HttpServletResponse) response;
if (!auth && !rq.getRequestURL().toString().contains("login.faces")) {
rp.sendRedirect("login.faces");
} else {
try {
chain.doFilter(request, response);
} catch (Throwable t) {
t.printStackTrace();
}
}
}
public void destroy() {
}
public void init(FilterConfig filterConfig) {
this.filterConfig = filterConfig;
if (filterConfig != null) {
if (debug) {
log("AuthFilter:Initializing filter");
}
}
}
public void log(String msg) {
filterConfig.getServletContext().log(msg);
}
}
Obrigado!