Aucune destruction de Session à la fermeture du navigateur
Bonjour,
J'ai codé une méthode qui me permet de déconnecter mon utilisateur en vérifiant si la session créée par le navigateur existe toujours, si la session est détruite, déconnecter mon utilisateur
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 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
| package ci.session;
import javax.servlet.http.HttpSession;
import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;
import org.apache.log4j.Logger;
import org.springframework.stereotype.Service;
import ci.bean.User;
import ci.service.*;
@Service
public class UserSessionListener implements HttpSessionListener {
private Logger log = Logger.getLogger(UserSessionListener.class);
private MessageServices messageService;
public void sessionCreated(HttpSessionEvent se) {
// log request of the INFO level
log.info("Session créée: " +se.getSession().getId());
}
public void sessionDestroyed(HttpSessionEvent se) {
//messageService = new MessageServiceImpl();
HttpSession session = se.getSession();
/*// Liaison avec le WebApplicationContext
ApplicationContext ctx = WebApplicationContextUtils
.getWebApplicationContext(session.getServletContext());
BeanFactory factory = ctx;
*/
// Suppresion de l'utilisateur dans la liste des connectés
try{
User user = (User) session.getAttribute("user");
messageService.removeUser(user);
}
catch(Exception ex){
log.error(ex.getMessage(), ex);
}
// log request about session's that are invalidated
log.info("Session détruite: " + session.getId());
}
} |
A l'ouverture du navigateur, ma session se crée mais ne se détruit pas à la fermerture.
Quelqu'un saurait-il m'indiquer comment faire ?
Merci d'avance pour votre aide.