JSF problema no metodo de Logoff

Boa noite

Estou com o seguinte problema, eu tenho uma aplicação JSF e preciso fazer um comando de logoff, eu fiz varios e todos deram o mesmo resultado, ele “mata” o a sessão do usuário (faz o logoof), mas não redireciona para tela de login (que é tela que eu quero que ele volte) bom aqui está os códigos:

Esse é o ManageBean:

    public String logoff() {
    FacesContext fc = FacesContext.getCurrentInstance();  
    HttpSession session = (HttpSession)fc.getExternalContext().getSession(false);  
    session.invalidate();   
    return "/pages/public/index.xhtml";     
}

E aqui o commandLink do XHTML:

<p:commandLink id="logoff" value="Teste"
                actionListener="#{autenticacaoManageBean.logoff}"  ajax="false" />

A tela de login e a tela que esta o botão logoff estão em pastas separadas

o login está em pages/public/login.xhtml

o botão esta em pages/templates/header.xhtml

Desde já agradeço pela ajuda.

Bom dia!

Não sei se lhe ajuda…

public void logout{
    String loginPage = "/index.jsf";
            ExternalContext context = FacesContext.getCurrentInstance().getExternalContext();
            HttpServletRequest request = (HttpServletRequest) context.getRequest();
            try {
                context.redirect(request.getContextPath() + loginPage);
            } catch (IOException e) {
            
            }
            HttpSession session = (HttpSession) context.getSession(false);
            session.invalidate();
            return "index";
}

Opa, Bom dia.

Resolvi o problema, na linha:

HttpSession session = (HttpSession)fc.getExternalContext().getSession(false); 

troquei de false para true e no XHTML no comand link:

<p:commandLink id="logoff" value="Teste"
            actionListener="#{autenticacaoManageBean.logoff}"  ajax="false" />

troquei o actionListener para action, então funcionou .

Obrigado.