[RESOLVIDO]definir tempo maximo de uma sessão por mais que haja atividade

4 respostas
gordogranudo

Preciso definir o tempo maximo de uma sessão por mais que usuário esteja ativo,
estava usando o time-out na web.xml mas vi que ele tem a mesma função do MaxInactiveInterval alguem saberia como fazer?

4 Respostas

gordogranudo

Alguem?

R

Ontem ia postar a mesma duvida, ai vi seu posto hehehe.
Estou de olho aqui também para ter minha resposta :)…

e Também tenho outra… quando esse tempo acabar como faço para redirecionar automático para tela de login…

Bom mas vamos um de cada vez…

A

Uma solução simplista seria você armazenar na sessão do usuário o horáro em que ele logou.
A cada request você testa se ele ultrapassou o tempo máximo.

Pode usar esse mesmo mecanismo para direcionar para a tela de login também.

gordogranudo
com base no que o AbelBueno falou fiz o seguinte codigo na minha jsp que resolveu meu problema
Calendar horaAtual = Calendar.getInstance();
long interval = horaAtual.getTimeInMillis() - request.getSession().getCreationTime();
//recebe o intervalo entre a data de criação da sessão e a requisição atual
double intervalo = (double) interval/(60*1000);
// verifica se o intervalo é maior que 7 minutos (que é o que eu precisava)
if(intervalo > 7){
//invalida seção
request.getSession().invalidate(); %>	
<meta http-equiv="refresh" content="0; url=Error.jsp">
<%}

Obs. usei o meta pq o send redirect estava dando "Cannot create a session after the response has been committed" dai coloquei o meta parou
espero que ajude alguem, agradeço o AbelBueno pela "luz"

Criado 21 de junho de 2013
Ultima resposta 24 de jun. de 2013
Respostas 4
Participantes 3