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");
}