IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Servlets/JSP Java Discussion :

Récupération de session


Sujet :

Servlets/JSP Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé

    Inscrit en
    Septembre 2005
    Messages
    98
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 98
    Par défaut Récupération de session
    Bonjour à tous,

    Je développer une application J2EE qui gère des sessions.
    j'aimerais que mon utilisateur administrateur puisse invalider une session d'un utilisateur dont il connait l'id.

    La classe HttpSessionContext faisait exactement ce que je voulais mais cette classe est deprecated et pas remplacé apparemment.

    Comment je peux faire pour invalider ou récupérer des données d'une session dont je connais l'id session ??

    Merci d'avance

    Souska

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    280
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 280
    Par défaut
    Pour detruire une session il suffit juste d'utiliser la methode HttpSession.invalidate() de cet object.

    Pour des raisons de securite, il n'est pas possible de recuperer une session via son ID au travers de l'api, donc tu dois construire toi meme ce system.

    C'est pas tres complique (suivant l'environnement que tu utilises) en general.
    Ils te suffit de creer une map (HashMap<String,HttpSession>) liant les ID de session aux objects HttpSession, et par exemple l'initialiser dans tes doGet() et doPost():

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    public void doPost(HttpServletRequest req, HttpServletResponse res) throws ServletException
      {
      SessionTracking.getInstance().addSession(req.getSession(true));
      ...
     
      }
    Avec:
    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
     
    final public class SessionTracking
    	{
    	static private final SessionTracking			INSTANCE		= new SessionTracking();
    	private HashMap<String, HttpSession>	mapSessions;
     
    	private SessionTracking()
    		{
    		mapSessionsThreads = new HashMap<String, HttpSession>(100);
    		}
     
    	static public SessionTracking getInstance()
    		{
    		return INSTANCE;
    		}
     
    	synchronized public void addSession(HttpSession session)
    		{
    		mapSessions.put(session.getId(),session);
    		}
    	synchronized HttpSession void getSession(String id)
    		{
    		return mapSessions.get(getId());
    		}
    	}
    Ceci n'est qu'un exemple d'implementation, tu peux aussi passer par des HttpSessionListener...
    ---
    Farid

  3. #3
    Membre confirmé

    Inscrit en
    Septembre 2005
    Messages
    98
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 98
    Par défaut
    Merci beaucoup pour votre réponse.

    J'ai creusé plutôt vers le HttpSessionListener et en effet, ça fonctionne.
    J'explique si ça peut aider quelqu'un.

    J'ai fait ma classe

    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
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    public class MyHttpSessionListener implements HttpSessionListener {
     
     
    public static Hashtable listeSessions = new Hashtable();
     
     
    /* (non-Javadoc)
     
    * @see javax.servlet.http.HttpSessionListener#sessionCreated(javax.servlet.http.HttpSessionEvent)
     
    */
     
    public void sessionCreated(HttpSessionEvent arg0) {
     
    HttpSession session = arg0.getSession();
     
    listeSessions.put(session.getId(), session);
     
    }
     
    /* (non-Javadoc)
     
    * @see javax.servlet.http.HttpSessionListener#sessionDestroyed(javax.servlet.http.HttpSessionEvent)
     
    */
     
    public void sessionDestroyed(HttpSessionEvent arg0) {
     
     
     
    HttpSession session = arg0.getSession();
     
     
     
    listeSessions.remove(session.getId());
     
    }
     
    /**
     
    * @return
     
    */
     
    public static Hashtable getListeSessions() {
     
    return listeSessions;
     
    }
     
    }


    et lorsque je veux invalider une session donnée :



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    HttpSession session = (HttpSession) MyHttpSessionListener.getListeSessions().get(idSession);
     
    if(session != null){
     
     session.invalidate();
     
    }
    Merci encore

    Bonne journée

    Souska

  4. #4
    Membre chevronné
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    280
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 280
    Par défaut


    ---
    Farid.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [PHP 5.3] Erreur de récupération de session entre HTTP et HTTPS
    Par kamisamades dans le forum Langage
    Réponses: 8
    Dernier message: 29/03/2011, 14h23
  2. Problème de récupération de session
    Par jpastier dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 20/10/2010, 11h20
  3. Authentification et récupération de session
    Par NikoBe dans le forum Servlets/JSP
    Réponses: 7
    Dernier message: 04/01/2007, 10h45
  4. Récupération login session windows
    Par the java lover dans le forum Servlets/JSP
    Réponses: 8
    Dernier message: 26/08/2006, 10h28
  5. Récupération de session
    Par ederf dans le forum Applets
    Réponses: 2
    Dernier message: 28/07/2006, 12h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo