[Resolvido] Problemas com WebFilter

Boa Tarde Senhores,

Estou tentando criar um WebFilter. Está me retornando que não é possível por causa de Loop. Busquei alguns sites já mas não achei a luz no fim do túnel ainda.
Segue meus códigos abaixo:

<ui:composition template=“template.xhtml”>
<ui:define name=“content”>
<h:messages />

	<h:form id="loginForm">

		<h:panelGrid columns="2" rendered="#{!login.loggedIn}">
			<h:outputLabel for="username">Username:</h:outputLabel>
			<h:inputText id="username" value="#{credentials.username}" />
			<h:outputLabel for="password">Password:</h:outputLabel>
			<h:inputSecret id="password" value="#{credentials.password}" />
		</h:panelGrid>

		<h:commandButton id="logout" value="Logout" action="#{login.logout}"
			rendered="#{login.loggedIn}" />
			
		<h:commandButton id="login" value="Login" action="#{login.login}"
			rendered="#{!login.loggedIn}" />

	</h:form>

	<h:link outcome="/users.xhtml" rendered="#{login.loggedIn}">View users</h:link>
	
</ui:define>

</ui:composition>

package org.jboss.as.quickstarts.login;

import java.io.Serializable;

import javax.enterprise.context.SessionScoped;
import javax.enterprise.inject.Produces;
import javax.faces.application.FacesMessage;
import javax.faces.context.FacesContext;
import javax.inject.Inject;
import javax.inject.Named;

@SessionScoped
@Named
public class Login implements Serializable {

private static final long serialVersionUID = 7965455427888195913L;

@Inject
private Credentials credentials;

@Inject
private UserManager userManager;

private User currentUser;

public void login() throws Exception {
	User user = userManager.findUser(credentials.getUsername(),
			credentials.getPassword());
	if (user != null) {
		this.currentUser = user;
		FacesContext.getCurrentInstance().addMessage(null,
				new FacesMessage("Welcome, " + currentUser.getName()));
	} else {
		FacesContext.getCurrentInstance().addMessage(null,
				new FacesMessage("Cliente não encontrado."));
	}
}

public void logout() {
	FacesContext.getCurrentInstance().addMessage(null,
			new FacesMessage("Goodbye, " + currentUser.getName()));
	currentUser = null;
}

public boolean isLoggedIn() {
	boolean aa = currentUser != null;
	System.out.println("currentUser: " + aa);
	return aa;
}

@Produces
@LoggedIn
public User getCurrentUser() {
	return currentUser;
}

}

package org.jboss.as.quickstarts.login;

import java.io.IOException;

import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.annotation.WebFilter;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

@WebFilter("/*")
public class LoginFilter implements Filter {

@Override
public void destroy() {
	System.out.println("teste destroy");
}

@Override
public void doFilter(ServletRequest request, ServletResponse response,
		FilterChain chain) throws IOException, ServletException {

	System.out.println("teste doFilter");
	HttpServletRequest req = (HttpServletRequest) request;
	HttpServletResponse res = (HttpServletResponse) response;
	
	HttpSession session = req.getSession();
	Login login = (Login) session.getAttribute("Login");
	System.out.println("login: " + login);
	
	if(login != null && login.getCurrentUser() != null) {
		System.out.println("currentUser: " + login.getCurrentUser());
		System.out.println("name: " + login.getCurrentUser().getName());
		
	} else {
		System.out.println("por aqui");
	}

// if (login == null || !login.isLoggedIn()) {
// System.out.println(“login == null”);
// res.sendRedirect(req.getContextPath() + “/home.jsf”);
//
// } else {
// System.out.println(“login != null”);
// }

	chain.doFilter(request, response);

}

@Override
public void init(FilterConfig arg0) throws ServletException {
	System.out.println("teste init");
}

}

Senhores, descobri como arrumar esse problema.
Apenas coloquei da forma abaixo

RequestDispatcher rd = req.getRequestDispatcher("/home.jsf");
rd.forward(request, response);
return;

e já funcionou.

Apareceu outros problemas, mas abro novo post para fazer a pergunta.