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 : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 <session-config> <session-timeout>3</session-timeout> </session-config>
- un listener sur les attributs de la session
Enfin j'ai une classe qui s'occupe de déconnecter mon utilisateur si la session est trop longtemps innactive
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 <listener> <listener-class> fr.meteo.servlet.auth.SessionAttribute </listener-class> </listener>
Mon problème :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 } }
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 :
(Mon idée était de créer de l'activité sur la session)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 String ip = request.getRemoteAddr(); HttpSession session = request.getSession(); session.setAttribute("Ip", ip); session.setAttribute("Login", login);
Mon raisonnement n'est pas le bon mais je ne vois pas quoi corriger ...
Merci pour votre aide![]()
Partager