1

Bonjour à tous,
Je cherche à mettre en place un bouton de deconnection d'une session tomcat d'un utilisateur alpha de mon portail sans pour autant toucher à ma propre session (sans me deconnecter).. Cette possibilité de deconnection des utilisateurs est que pour l'Administrateur en cas de Maintenance etc pouvoir deconnecter tous ou un des utilisateurs connectés sachant que j'ai un tableau de tous les utilisateurs actuellement connéctés .. Merci

2

Dans ce cas, tu n'as pas vraiment le choix, tu es obligée, en plus de stocker toutes les sessions (les objets HttpSession) de tous les utilisateurs pour pouvoir invalider un à un toutes les sessions.
A la rigueur, au lieu de stocker les identifiants des utilisateurs dans ton tableau, tu peux stocker juste la session, et lorsque tu souhaites afficher les utilisateurs, pour chaque session, il te faut récupérer la valeur de session.getAttribute("nomUtilisateur");

Je ne connais pas d'autre façon de le faire.
Rest... In... Peace

3

Bonjour CoopeR, vraiment désolé pour la reponse tardive, merci pour la reponse, ce que j'ai fait pour le moment c'est que j'utilise HttpSessionListener maus j'arriv pas à desactiver les sessions que j'ai stocké comme vous me l'avez recommandez ??

4

Quelques points avant de continuer :
- mon pseudo est CoppeR (2 p et 1 o) et non CoopeR (qui est une autre personne du forum), mais vu qu'il y avait les majuscules, je ne t'en veux pas ^^
- ici, tout le monde se tutoie, nous sommes une communauté décontractée (trop pour certains d'ailleurs). Du coup, tu peux faire de même me concernant smile

Personnellement, je ne connais pas la classe HttpSessionListener (plus précisément, je ne l'ai jamais utilisé). Je vais regarder comment elle fonctionne et je pourrais éventuellement t'aider d'avantage ensuite. Par contre, si une autre personne connait mieux le problème, qu'il parle maintenant ou qu'il se taise à jamais (ou pas)
Je reviendrai donc sur ce topic des que possible.

Désolé de ne pouvoir t'aider d'avantage maintenant.
Rest... In... Peace

5

(Rire) .. Ça Marche CoppeR on se tutoie alors smile , ok je reste connecter au site en cas de nouveautés , Merci cas meme ..

6

J'ai regardé la classe HttpSessionListener. D'après ce que j'ai compris, elle ne permet pas de créer ou de détruire des session, mais juste d'être averti lorsqu'une session est créée ou lorsqu'elle est détruite.

Ce que je "recommandais" était de créer une variable de type java.util.Map (pour l'exemple, nous dirons que cette variable s'appelle mapSessions) sur la servlet de connexion qui, en plus de vérifier que le login/password est correct, stocke dans mapSessions la session de l'utilisateur avec son login comme clé.
Ça donnerait quelque chose comme ça :
public void connectUser(String login, String password) {
  if (verifPassword(login, password)) { // s'il s'agit du mot de passe de l'utilisateur.
    request.getSession().setAttribute("login", login); // on stocke l'utilisateur connecté en session.
    mapSessions.put(login, request.getSession()); // on stocke la session utilisateur.
  }
}

public Collection<String> getPersonnesConnectees() {
  return mapSessions.keySet(); // liste des clés (i.e logins) de la Map.
}

public void disconnectUser(String login) {
  mapSessions.get(login).invalidate();
}


Par contre, il faut bien voir qu'il s'agit là d'une déconnexion brutale de l'utilisateur et que si celui-ci n'est pas averti, son application plantera certainement.
Rest... In... Peace

7

Merci Merci, il s'agit effectivement d'une deconnection brutale mais avant la deconnection, il y a une notification qu'on peut envoyer à l'utilisateur pour l'avertir, pour le moment je vais essayer d'integrer ta solution .. encore Merci