HttpServlet, Session & TimeOut
Bonjour,
Je travaille sur une application java qui appelle des HttpServlet sur un serveur Tomcat.
J'ai mis en place dans le fichier Xml:
- un TimeOut (que j'ai baissé à 3 minutes pour mes tests)
Code:
1 2 3 4
|
<session-config>
<session-timeout>3</session-timeout>
</session-config> |
- un listener sur les attributs de la session
Code:
1 2 3 4 5 6
|
<listener>
<listener-class>
fr.meteo.servlet.auth.SessionAttribute
</listener-class>
</listener> |
Enfin j'ai une classe qui s'occupe de déconnecter mon utilisateur si la session est trop longtemps innactive
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
| package fr.meteo.servlet.auth;
import javax.servlet.http.HttpSessionAttributeListener;
import javax.servlet.http.HttpSessionBindingEvent;
/**
* Classe SessionAttribute
*/
public class SessionAttribute implements HttpSessionAttributeListener{
public void attributeAdded(HttpSessionBindingEvent event) {
// TODO Auto-generated method stub
}
@Override
/**
* Définition : Méthode permettant de gerer la déconnection
*/
public void attributeRemoved(HttpSessionBindingEvent event) {
if (event.getName().equals("Login")){
DeconnectionServeur.deconnection((String)event.getValue());
}
}
@Override
public void attributeReplaced(HttpSessionBindingEvent arg0) {
// TODO Auto-generated method stub
}
} |
Mon problème :
Bien que j'appelle différents services au cours de ces 3 minutes, le serveur me déconnecte automatiquement 3 minutes (environ) après que l'utilisateur se soit connecté.
Donc la question est :
Comment faire comprendre au serveur que la session est solicitée et donc toujours en activité ?
Je pensais régler le problème en mettant le code suivant dans mes servlets mais ce n'est pas la bonne solution :
Code:
1 2 3 4
| String ip = request.getRemoteAddr();
HttpSession session = request.getSession();
session.setAttribute("Ip", ip);
session.setAttribute("Login", login); |
(Mon idée était de créer de l'activité sur la session)
Mon raisonnement n'est pas le bon mais je ne vois pas quoi corriger ... :(
Merci pour votre aide :ccool: