Erro ao usar filtro de Sessão em JSF doFilter

Bom dia!

Pessoal,

Criei meu filtro de sessão que funciona perfeitamente na Ide eclipse, mais quando coloco para rodar no browser ele congela deixa digitar nos box de Usuário e Senha mais nada acontece.

uma coisa que descobri quando dou um F5 no browser Para atualizar, ele volta a funcionar normalmente. caso alguém com mais experiência possa me ajudar. grato

Minha tela login onde digito O Nome de Usuário e Senha

<html xmlns="http://www.w3.org/1999/xhtml"
    xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
    xmlns:h="http://xmlns.jcp.org/jsf/html"
    xmlns:f="http://xmlns.jcp.org/jsf/core"
    xmlns:p="http://primefaces.org/ui">

    <h:head>

        <h:outputStylesheet library="css" name="default.css"/>

    </h:head>

    <h:body style="display:flex;">


        <h:form style=" margin:auto;">

            <p:growl id="growl-mensagem" showDetail="true" sticky="true" /> 

            <p:panel id="panel-login-principal" 
                     header="Login" 
                     footer="Sistema ERP" 
                     style="width:400px">

                <h:panelGrid columns="2" cellpadding="10">

                    <p:graphicImage url="/resources/imagens/locked.png" />

                    <h:panelGrid columns="2" cellpadding="5">

                        <p:outputLabel value="Login"/>
                        <p:inputText id="inputText-login" 
                                 value="#{loginBean.nomeUsuario}"/>

                        <p:outputLabel value="Senha"/>
                        <p:password id="password-usuario" 
                                value="#{loginBean.senha}"/>

                        <p:spacer/>

                        <p:commandButton value="Acessar" 
                         id="commandButton-acessar"
                         icon="ui-icon-gear"
                         action="#{loginBean.login}"
                         update="growl-mensagem" />

                    </h:panelGrid>

                </h:panelGrid>

            </p:panel>

        </h:form>

    </h:body>
</html>

Minha Classe AutorizacaoFilter Onde faço o filtro

@WebFilter("*.xhtml")
public class AutorizacaoFilter implements Filter {

    @Inject
    private UsuarioController autenticacao;

    @Override
    public void doFilter(ServletRequest req, ServletResponse res,
            FilterChain chain) throws IOException, ServletException {
        HttpServletResponse response = (HttpServletResponse) res;
        HttpServletRequest request = (HttpServletRequest) req;

        if (!autenticacao.isLogado() 
                && !request.getRequestURI().endsWith("/index.xhtml")
                && !request.getRequestURI().contains("/javax.faces.resource/")) {
                   response.sendRedirect(request.getContextPath() + "/index.xhtml");
        } else {
            chain.doFilter(req, res);
        }
    }

    @Override
    public void init(FilterConfig config) throws ServletException {
    }

    @Override
    public void destroy() {
    }

}

Classe login Onde Verifico se o usuário existe no banco

public String login() {

        usuarioModel = usuarioRepository.ValidaUsuario(this.nomeUsuario,this.numSenha);

        if (usuarioModel != null) {
            this.usuarioController.setNome(this.nomeUsuario);
            this.usuarioController.setDataLogin(new Date());
            this.usuarioController.setCodigoId(usuarioModel.getCodigo());
            return "sistema/home?faces-redirect=true";
        } else if ((this.nomeUsuario).isEmpty()) {
            NegocioException.MensagemAlerta("Favor informar o login!");
        } else if ((this.numSenha).isEmpty()) {
            NegocioException.MensagemAlerta("Favor informar a senha!");
        } else {
            NegocioException.MensagemErro("Usuário/senha inválidos!");
        }

        return null;
    }

Minha Classe UsuarioController onde verifico se o usuário esta Logado ou não pelo método isLogado()

@Named
@SessionScoped
public class UsuarioController implements Serializable {
    private static final long serialVersionUID = 1L;

    @Inject
    private UsuarioRepository usuarioRepository;    

    private String nome;
    private Date dataLogin;
    private Long codigoId;

    public boolean isLogado() {
        return nome != null;
    }

    public String getNome() {
        return nome;
    }

    public void setNome(String nome) {
        this.nome = nome;
    }

    public Long getCodigoId() {
        return codigoId;
    }

    public void setCodigoId(Long codigoId) {
        this.codigoId = codigoId;
    }

    public Date getDataLogin() {
        return dataLogin;
    }

    public void setDataLogin(Date dataLogin) {
        this.dataLogin = dataLogin;
    }

se alguém poder me ajudar já estou a dias tentando descobrir onde estou errando.