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 :

[JSP] probleme d'invalidation de session


Sujet :

Servlets/JSP Java

  1. #1
    Membre du Club Avatar de Jovial
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    55
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 55
    Points : 42
    Points
    42
    Par défaut [JSP] probleme d'invalidation de session
    bonjour,

    voilà mon petit soucis.

    j'ai une session pour un utilisateur que j'invalide grâce à une page JSP et le code
    donc en fait j'ai testé la chose avec 3 navigateurs et le comportement est bizarre pour 2 d'entres eux.
    En fait quand l'utilisateur clique sur le lien de déconnexion il est renvoyé vers la page d'identification. De là s'il tape l'adresse d'une page de contenu privée sans s'etre authentifié il réaccède au contenu avec les variables de sessions de la dernière session alors qu'elles n'ont pas été recréées puisqu'il ne sait pas ré-authentifier.
    Cela se produit avec les navigateurs IE et Opera mais pas avec Mozilla.

    Opera me fait meme qqchose de pire puisque meme s'il y a ré-authentification, l'acces aux contenus privées se fait avec les variables de sessions de la sessions précédentes et non avec les nouvelles créées lors de l'authentification.

    En gros je comprends pas comment cela est possible puisque le session.invalidate() est sensé stopper la session (et donc supprimer les variables de sessions associées)

  2. #2
    Membre habitué
    Avatar de dtateur
    Inscrit en
    Mars 2004
    Messages
    106
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 106
    Points : 140
    Points
    140
    Par défaut
    session.invalidate() a toujours marché pour moi, donc je n'ai pas vraiment de pistes à te donner pour trouver le probleme( peut-etre un pb de cache navigateur).

    Mais pour plus de sureté, avant le session.invalidate(), tu peux enlever tous les objets de la session :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    String key;
    for (Enumeration names = session.getAttributeNames(); names.hasMoreElements();) {
    				key = (String) names.nextElement();
    				session.removeAttribute(key);
    }

  3. #3
    Membre expérimenté
    Avatar de RanDomX
    Profil pro
    sans
    Inscrit en
    Mars 2003
    Messages
    579
    Détails du profil
    Informations personnelles :
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : sans

    Informations forums :
    Inscription : Mars 2003
    Messages : 579
    Points : 1 407
    Points
    1 407
    Par défaut
    essais de rajouter session = null; apres le invalidate.

    Clear tout avant aussi ca peut servir.

    Autre chose, qd tu recrés une session prends bien soin de le faire avec le boolean à false.

    @+

  4. #4
    Membre du Club Avatar de Jovial
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    55
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 55
    Points : 42
    Points
    42
    Par défaut
    le code de dtateur me lève une "java.util.ConcurrentModificationException"

    sinon je ne créé pas de session, je créé uniquement des attributs pour celle-ci car j'ai cru comprendre qu'elle était créer automatiquement.
    D'ailleurs je ne trouve pas de méthode de création dans la doc
    http://java.sun.com/products/servlet/2.2/javadoc/javax/servlet/http/HttpSession.html

    Le fait de mettre session à null n'a pas non plus modifié le problème :-(

  5. #5
    Membre habitué
    Avatar de dtateur
    Inscrit en
    Mars 2004
    Messages
    106
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 106
    Points : 140
    Points
    140

  6. #6
    Membre du Club Avatar de Jovial
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    55
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 55
    Points : 42
    Points
    42
    Par défaut
    Bah a priori je me suis dit que ça allait pas marcher puisque cette fonction invalide au bout de 0 secondes la session, mais j'ai tout de même testé.
    Donc ça marche pas !
    comprend pas du tout comment ça se fait ce truc !

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2004
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 24
    Points : 26
    Points
    26
    Par défaut
    moi ca marche avec ca mais jai testé quavec mozilla ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Enumeration sesNames =
          		session.getAttributeNames();
       			while(sesNames.hasMoreElements()) {
          			String name = sesNames.nextElement().toString();
          			System.out.println ("Attributes name: " + name);
          			session.removeAttribute(name);
    		    }
    		    session.invalidate();

  8. #8
    Membre du Club Avatar de Jovial
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    55
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 55
    Points : 42
    Points
    42
    Par défaut
    bah honnetement je comprends pas, c'est un peu du n'importe quoi là :
    moi ca marche pas... toujours la meme foutu exception
    Mais attention à ma grande surprise cette exception n'apparait pas avec opera ! c'est du code jsp et le navigateur a l'air de l'influencer donc je comprends pas !

    Bon et le pire c'est qu'Opera n'a pas l'exception mais surtout que ca marche toujours pas, meme erreur...

  9. #9
    Membre expérimenté
    Avatar de RanDomX
    Profil pro
    sans
    Inscrit en
    Mars 2003
    Messages
    579
    Détails du profil
    Informations personnelles :
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : sans

    Informations forums :
    Inscription : Mars 2003
    Messages : 579
    Points : 1 407
    Points
    1 407
    Par défaut
    t sur que c pas le cache navigateur ?

    t'as mis des infos ds le header pour désactiver tout caching ?

    < META HTTP-EQUIV="PRAGMA" CONTENT="NO-CACHE" />
    < META HTTP-EQUIV="EXPIRES" CONTENT="-1" />

  10. #10
    Membre du Club Avatar de Jovial
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    55
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 55
    Points : 42
    Points
    42
    Par défaut
    bah le cache ne se vide pas quand on ferme l'appli
    parce que j'ai coupé opera et relancé

    ceci dit c'est possible puisque je n'ai mis aucune indication dans le head pour le caching car je sais pas comment on fait.

  11. #11
    Membre expérimenté
    Avatar de RanDomX
    Profil pro
    sans
    Inscrit en
    Mars 2003
    Messages
    579
    Détails du profil
    Informations personnelles :
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : sans

    Informations forums :
    Inscription : Mars 2003
    Messages : 579
    Points : 1 407
    Points
    1 407
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <Head>
    < META HTTP-EQUIV="PRAGMA" CONTENT="NO-CACHE" /> 
    < META HTTP-EQUIV="EXPIRES" CONTENT="-1" />
    </Head>

  12. #12
    Membre du Club Avatar de Jovial
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    55
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 55
    Points : 42
    Points
    42
    Par défaut
    ah mais c'est pas possible !
    bon bah c'était ça en fait donc j'ai honte


    ceci dit opera a le cache très tenace tout de même !
    ainsi qu'IE mais les comportements avec le cache apparaissent donc comme complètement différent d'un navigateur à l'autre et le refresh bien inutile je trouve sur opera et IE !

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

Discussions similaires

  1. Probleme de passage de session php/jsp
    Par onimougwo dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 05/04/2007, 17h34
  2. [JSP] probleme de out.println() avec un document
    Par SEMPERE Benjamin dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 12/08/2004, 08h31
  3. [struts] invalidation de session
    Par rocco dans le forum Struts 1
    Réponses: 16
    Dernier message: 25/06/2004, 15h40
  4. [JSP] Probleme avec ResultSet
    Par Jovial dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 11/05/2004, 11h02
  5. [Struts][jsp] probleme de path
    Par vpet dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 30/03/2004, 18h21

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