Gerenciamento de sessões no gwt
Estou trabalhando em um aplicativo GWT-ext. Nesta aplicação, gerenciei a sessão do lado do cliente. Para isso, escrevo abaixo o código:
Para gerenciar a sessão: import com.google.gwt.user.client.Timer;
public class ClientTimers {
private static final Timer SESSION_MAY_HAVE_EXPIRED_TIMER = new Timer() {
@Override
public void run() {
// Warn the user, that the session may have expired.
// You could then show a login dialog, etc...
}
};
public static void renewSessionTimer() {
// First cancel the previous timer
SESSION_MAY_HAVE_EXPIRED_TIMER.cancel();
// Schedule again in 5 minutes (maybe make that configurable?)
// Actually, let's subtract 10 seconds from that, because our timer
// won't be synchronized perfectly with the server's timer.
SESSION_MAY_HAVE_EXPIRED_TIMER.schedule(5 * 60 * 1000 - 10000);
}
}
Para obter a atividade do usuário:
Ext.get("pagePanel").addListener("click", new EventCallback() {
@Override
public void execute(EventObject e) {
//MessageBox.alert("On Mouse Click");
});
Ext.get("pagePanel").addListener("keydown", new EventCallback() {
@Override
public void execute(EventObject e) { //
//MessageBox.alert("On Key Press Click");
}
});
Este código está funcionando bem, mas meus problemas: este código será desconectado automaticamente conforme o tempo limite ocorre. Para o meu código, quero que, ao clicar ou pressionar a tecla, ele faça o logout. O caso é o seguinte: se o usuário estiver logado e o tempo de logout for de 5 minutos, o usuário não realizará nenhuma atividade na tela agora, conforme o código acima, ele será desconectado automaticamente quando os 5 minutos completo
Agora, o meu requisito é que, se o usuário estiver conectado e não fizer nada por 5 minutos, ele não deverá fazer logout automaticamente. min, deve fazer o processo de logoff.
Basicamente, o processo de logout, pois o cronômetro excede o tempo especificado, deve ser realizado na atividade do usuário, não automaticament