LoginFilter problema ao acessar url diretamente

Estou tentando fazer um filtro de login em uma aplicação web em jsf, mas estou com um probleminha:

Tenho um LoginFilter, que implementa a classe Filter:

[code]public class LoginFilter implements Filter {

public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
	LoginController loginController = (LoginController) ((HttpServletRequest) request).getSession().getAttribute("loginController");
	if (loginController == null || !loginController.isLogged()) {
		String contextPath = ((HttpServletRequest) request).getContextPath();
		((HttpServletResponse) response).sendRedirect(contextPath + "/login.jsf");
	}
	chain.doFilter(request, response);

}

public void init(FilterConfig config) throws ServletException {
}

public void destroy() {
}

[/code]

Isso faz com que quando o usuário tente acessar um página pela url sem estar logado ele seja redirecionado para a tela de login, até ai tudo certo.
O problema é que antes de redirecionar, o controller (o método com PostConstruct) da tela que estou tentando acessar é executado, e isso está errado, pois não tenho nenhum usuário na sessão ainda, alguém sabe como interromper que o controller seja chamado?