Quando tenho 2 ou mais usuários logados na aplicação, ocorre o seguinte problema:
- Usuario 01 logou, coloquei os dados do mesmo na variável de contexto "usuarioLogado".
- Usuario 02 logou, fiz o mesmo procedimento acima, mas o Usuario 01 continua operando a aplicação. Caso eu queria monitorar os acessos, ou log, vai pegar os dados do ultimo usuário logado, até pesquisei outras formas de implementação, mas segue o meu método de login.
 
 
public RedirectView efetuarLogin() {
        System.out.println("Fazendo login do usuario " + this.usuario.getNome());
        FacesContext context = FacesContext.getCurrentInstance();
        try{
            boolean existe = dao.efetuarLogin(this.usuario);
            if (existe) {
                //context.getExternalContext().getSessionMap().put("usuarioLogado", this.usuario);
                HttpSession session = SessionContext.getSession();
                session.setAttribute("usuarioLogado", this.usuario);
                return new RedirectView("_template.xhtml");
            }
        }catch (Exception e) {
            this.error("Usuário não encontrado");
        }
        context.getExternalContext().getFlash().setKeepMessages(true);
        context.addMessage(null, new FacesMessage("Usuário não encontrado"));
        return new RedirectView("login");
    }