Salut je suis en train de developper une application web en utilisant le frame work jsf. je veux savoir comment on peut avoir une seule session ouverte pour les memes identifiants.
Aidez moi et merci d'avance. (
Salut je suis en train de developper une application web en utilisant le frame work jsf. je veux savoir comment on peut avoir une seule session ouverte pour les memes identifiants.
Aidez moi et merci d'avance. (
Tu entends quoi par là ?
Tu veux dire que je me connecte à ton appli avec l'identifiant X, je prends un autre navigateur et je me connecte avec le même identifiant X. Alors je partagerais les mêmes informations sur les 2 navigateurs ?
apparament c'est ca ,
mais je croix que tu doit gerer ca tous seul avec des bean de scope application
et hashmap ou la cle et ton user...
c'est juste une idee
Un bon départ je pense serait de mettre les sessions au niveau serveur et non client, ce qui se définit sur le web.xml :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 <context-param> <param-name>javax.faces.STATE_SAVING_METHOD</param-name> <param-value>server</param-value> </context-param>
je suis à domicile et j'ai ouvert ma session de travail si kelk'un dans un autre endroit essaye d'ouvrir ma session(en utillisant mes identifiants)il doit etre informer ke cette session est ouverte déjà.
romaintz svp où je dois mettre le code? estce que dans le fichier faces-config.xml?
Stocke dans ton contexte application l'identifiant des personnes connectées.
Pour la connection c'est simple, mais peux t'on intercepter en JSF l'évenement session_end?
En asp.net c'est très pratique : tout est dans le global.asax, en jsf...
Je disais d'ajouter la ligne dans web.xml, donc je suppose que je parle du fichier web.xml Maintenant, ça ne sera pas suffisant pour résoudre ton problème dans la mesure où cela permet juste de stocker la session sur le serveur et non au niveau client. Ca ne partage pas du tout les informations de sessions !
La solution de seddik_saber est plus appropriée pour toi...
Dans ton explication, tu dis que si quelqu'un se connecte avec ton compte, il faut l'informer que la session est déjà ouverte... Ca veut dire quoi ? Lui refuser l'accès en lui disant "ce compte est actuellement en cours d'utilisation" ou lui indiquer mais que vous partagiez vos informations de sessions ?
lui refuser son accés car il peut etre un pirate ou le compte de vrai utilisateur est déjà piraté.
Le plus dur a mon avis sera de savoir lorsque un utilisateur s'est déconnecté et donc "relacher" son verrou.
Il faut à mon avis gérer un hashmap login / session.
A chaque nouveau login, vérifier s'il y a une session dans la hashmap, et si c'est le cas, vérifier que la session a été invalidée... Si la session existe est est valide, alors lever une exception AlorsOnEssaieDUsurperLIdentitieDeSonCamaradeException...
Normalement, le timeout devrait faire l'affaire, dans le cas (fréquent) où l'utilisateur ne s'est pas déconnecter proprement...
Si il s'est pas déconnecté proprement sa session est active, donc ses credentials aussi, donc pas besoin de se reconnecter, donc il est pas accusé injustement
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager