-
Gestion Multi Session
Bonjour,
j'ai 2 problèmes.
1er problème:
Comment faire pour tuer une session lors de la fermeture de la fenêtre de mon navigateur?
Explications : Lorsque je ferme mon navigateur, mais que je reviens ensuite taper l'URL et que l'utilisateur ne s'est pas déconnecté de l'application, on a quand même accès à la page!
2eme problème:
Comment gérer les multi-session d'utilisateurs afin d'éviter les conflits lorsque deux utilisateurs sont connectés simultanément (en plus si j'ouvre 2 fenêtres firefox et que je m'identifie différemment, si l'un se déconnecte l'autre est déconnecté à cause d'un conflit d'utilisateur)?
Merci pour votre aide car je rame quelque peu... :arf:
-
alors, d'abord, la gestion de la session, ce n'est pas le boulot de JSF, c'est le boulot du conteneur. Ensuite, si ta session persiste après la fermenture complete du navigateur, c'est probabement que les urls contiennent le JSESSIONID, utilisé pour suivre la session. Pour ce qui est de la fermer à la fermeture du navigateur, impossible, car la fermeture d'un navigateur ne déclenche pas d'action sur le serveur. Normalement, on utilise des cookies dont la vie est limitée à l'intstance du navigateur pour faire le tracking de la session, ainsi celle-ci n'est normalement pas récupérable après fermeture (le cookie a disparu). Mais si tu passe par de l'url rewriting plutot que les cookies (cookies désactivés) y a pas de choix, tant que la session a pas expiré coté serveur, elle reste récupérable après réouverture du navigateur. Une solution est de mettre un lien "logout" où, dans l'action jsf, tu invalide la session utilisateur (session.invalidate()). En ce qui concerne avoir plusieurs sessions actives sur la meme machine, difficile. Il faut bien utiliser qqch pour faire le tracking, et ce qqch est commun dans toute ton instance du navigateur (un cookie), donc une seule session dans le cookie. Si tu veux deux session, il faut deux instances du navigateur, (la pluspart des navigateur ne permettent pas de faire çà). Perso quand çà m'est nécessaire, je démarre un firefox d'un coté et un konqueror ou un opera de l'autre, comme çà c'est bien isolé :)
-
Merci pour ta réponse c'est très clair!!
Je vais voir si je peux utiliser des cookies plutôt que l'url rewriting! Si d'ailleurs quelqu'un avait des précisions sur l'utilisation des cookies ça m'aiderait.
Merci en tout cas tchize, ça m'a pas mal éclairé!
-
Je viens juste de percuter mais je n'utilise pas l'url rewriting (enfin je ne vois pas de JSessionId dans l'url)! C'est un peu bizarre cette hsitoire!!
-
peut etre pas fermé toutes les fenetres du navigateur.... (genre sous firefox, par exemple, faut penser à aussi fermer la fenetre de download)