Ir para conteúdo
Fórum Script Brasil

romatos17

Membros
  • Total de itens

    1
  • Registro em

  • Última visita

Tudo que romatos17 postou

  1. Bom dia galera, eu fiz um código aqui para encerrar a sessão do usuário. Espero que ajude. No jsp adicionei os seguintes eventos no body: <html xmlns:p="http://primefaces.org/ui"> <h:body onunload="limparSessao()" onload="ativarSessao()"> e essa parte para criar funções JS que executem métodos do meu bean <p:remoteCommand name="limparSessao" immediate="true" action="#{loginMB.limparSessao}"/> <p:remoteCommand name="ativarSessao" immediate="true" action="#{loginMB.ativarSessao}"/> No meu ManegedBean ( loginMB): public void limparSessao(){ try { Thread.sleep(5*1000);// Aguardar 5 segundos para verificar se é para sair da sessão Boolean flag = (Boolean) FacesContext.getCurrentInstance().getExternalContext().getSessionMap().get("flagSair"); if(flag == null || flag){ // Encerrar a sessão. System.out.println(">>>>>>>>>> Sessão Encerrada!!! <<<<<<<<<<<<"); final HttpSession session = (HttpSession) FacesContext.getCurrentInstance().getExternalContext().getSession(Boolean.TRUE); session.invalidate(); } else { FacesContext.getCurrentInstance().getExternalContext().getSessionMap().put("flagSair", true); } } catch (InterruptedException e) { e.printStackTrace(); } } public void ativarSessao(){ // Se for o primeiro acesso, setar que pode deslogar ao sair da pagina (Default). if(FacesContext.getCurrentInstance().getExternalContext().getSessionMap().get("flagSair") == null){ FacesContext.getCurrentInstance().getExternalContext().getSessionMap().put("flagSair", true); } else { // Setar que não pode deslogar ao sair da pagina (Default). FacesContext.getCurrentInstance().getExternalContext().getSessionMap().put("flagSair", false); } } Dessa forma se a janela for fechada (apertando no 'X', com alt+f4 e etc...) e não atualizada a sessão será encerrada.
×
×
  • Criar Novo...