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] Gestion des sessions


Sujet :

Servlets/JSP Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de ze veritable farf
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    152
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 152
    Par défaut [JSP] Gestion des sessions
    Bonjour,

    Je developpe une application JSP et je rencontre un problème de taille : Lorsque l'un de mes utilisateurs se connecte, il s'identifie et il a accès à ses données sans problèmes. Mais si un deuxième se connecte, avant d'avoir à s'identifier, il est reconnu comme étant le premier utilisateur (et du coup il a acces a toutes les données qui ne lui sont pas adressées). S'il se log, il fait se terminer la session du premier utilisateur.

    En clair : ma gestion des utilisateur, ne permet qu'à un utilisateur à la fois de se connecter.

    Je vous met le code que 'ai utilisé pour récupérer l'utilisateur identifié :

    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
     
     <%@ page errorPage = "/WEB-INF/erreur.jsp" import="bd.*" %>
     <%@ include file = "/WEB-INF/jspf/navigation.jspf" %>
     
     <jsp:useBean id="identificat" class="bd.Personne" scope="session" >
         <jsp:setProperty name="identificat" property="*" />
     
         <h3 align="center">
     
         <%
             if (identificat.existe()) {
         %>
         <font color="green">Utilisateur authentifié : Docteur 
         <jsp:getProperty name="identificat" property="nom" /></font>   
            <br><META HTTP-EQUIV="Refresh" CONTENT="3, URL=reception.jsp">
         Veuillez patienter quelques secondes, vous allez être redirigé vers votre messagerie ... :
         <br>
         Si la redirection ne s'est pas faites dans 5 s veuillez cliquer <a href="bienvenue.jsp"> ICI </a> .
         <% 
                 }else{
         %>
         <font color="red">Nom d'utilisateur ou mot de passe incorrects !</font>  
         <META HTTP-EQUIV="Refresh" CONTENT="2, URL=identification.jsp">
         <% 
            session.removeAttribute("identificat");
                 }
                 identificat.arrêt();
         %>
     
     
     </jsp:useBean>
     <%@ include file = "/WEB-INF/jspf/pieds.jspf" %>
    Et celui que j'utilise pour définir l'utilisateur connecté (ce code c'est un .jspf donc normal si il n'y a pas toutes les balises) :

    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
    52
    53
    54
    55
    56
    57
    58
     
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
       "http://www.w3.org/TR/html4/loose.dtd">
     
     
       <%! int idPer = 0; %>
     <%! String identité = "A tout le monde"; %>
         <%! String ff = "demi"; %>
     <% 
         Personne opérateur = (Personne) session.getAttribute("identificat");
         if (opérateur!=null) {
             String temp = opérateur.getId();
             idPer = Integer.parseInt(temp);
             identité = "Docteur "+opérateur.getPrénom()+" "+opérateur.getNom();
             ff = opérateur.getFormat();
         }
         
     %>   
     
    <html>
      <head><title>Messages</title></head>
      <body bgcolor="#E0E0E0" >
        <font face="Comic Sans MS">
            <br>
             <table border="0" bgcolor="#E0E0E0" cellpadding="3" cellspacing="2" align="center" width="91%">
      <tr>   
      <th align="left"><input type="image" src="new30.PNG" border="0" ></th>
           <th>
     
     
                     <td align="right"><iframe width=174 height=189 name="gToday:normal:agenda.js:gfFlat_arrDate" id="gToday:normal:agenda.js:gfFlat_arrDate" src="Classic/iflateng.htm" scrolling="no" frameborder="0">
                     </iframe>
           </th>
                 </tr>
             </table>
     
     
            <table border="1" bgcolor="1" cellpadding="3" cellspacing="2" width="90%" align="center">
                <tr bgcolor="#99CCFF">         
                <th align="left"><a href="reception.jsp">R&eacute;ception</a></th>
                <th align="left"><a href="bienvenue.jsp">Emission</a></th>
                <th align="left"><a href="archive.jsp">Archives</a></th>
                <!--<th align="left"><a href="planning.jsp">Agenda</a></th>-->
                <th align="right">
                    <a href="identification.jsp">Identification</a>
                  <a href="deconnexion.jsp" target="wclose" onclick="window.open('deconnexion.jsp','wclose','width=800,height=600, toolbar=no, status=no, left=20, top=30')"></a>
                </th>
                </th> 
                </tr>
            </table>
            <table width="90%" align="center">
                <tr>
                    <th align="left"><%= identité %></th>
                     <th align="left"></th>
                    <th align="right"><%= request.getRemoteHost() %></th>
                </tr>
            </table>
        </font><font face="arial">
    J'espere que certains d'entre vous y verrons clair dans cette histoire.

    Bonne journée à tous.

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 43
    Par défaut
    Bonjour,
    avant de regarder ton code et la gestion de tes sessions, j'aurais une petite question toute bête :
    Comment testes-tu celà ?

    en effet, si tu te sers du même navigateur pour tes deux utilisateurs, la gestion des sessions passant par les cookies, il est normal que ton appli reconnaisse la deuxième authentification comme étant la même que la première, car pour "lui" c'est la même personne. Il est également normal, dans ce cas que lors de l'identification du second, il ferme la session du premier, car on ne peut avoir qu'une seule session sur un même navigateur.

    PS : je sais que ma question peut paraître un peu bête, mais parfois (ou même souvent ) on croit avoir un code buggé alors que c'est notre manière de tester qui est mauvaise...

  3. #3
    Membre confirmé Avatar de ze veritable farf
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    152
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 152
    Par défaut
    Salut Romarseille.

    En effet, tu as raison de me poser cette question mais il n' y a aucun dout possible, pour tester mon application, j'utilise :

    --> Tomcat installé en dur sur le poste serveur.
    --> Des postes bien distincts pour les différents clients.

    Pour me connecter :

    http://mon_ip:8080/mon_appli

    J'arrive bien sur mon aplli depuis tous les postes mais je me retrouve toujours face au même problème.

  4. #4
    Rédacteur

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    4 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 184
    Par défaut
    Il suffit de mettre un objet user(ton bean) en session, le serveur crée une session pour chaque utilisateur, il est impossible d'avoir une session à la fois.Sinon HTTP n'aurait aucun interet ..
    Donc si un utilisateur ferme son naviguateur,le session est perdue et donc il ne sera plus en session.. pas besoin de faire un removeAttribute ...

    NB:il faut essayer de faire tout ce traitement dans une classe java. et passer par des servlets..le modèle MVC n'est pas du tout respecté ..

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 43
    Par défaut
    Bon, sniper37 m'a devancé mais j'allais te dire grossomodo la même chose, tu as essayé, c'est bon ?

  6. #6
    Membre confirmé Avatar de ze veritable farf
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    152
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 152
    Par défaut
    Je vous remercie, mais je ne sais pas comment m'y prendre, et comment faire pour respecter le modèle MVC ?

    Suis-je obligé de passer par des servlet, et dans ce cas là, pourais-je bien conserver des clients dépourvus de la machine virtuelle Java ?

    Merci d'avance et bonne journée à tous.

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

Discussions similaires

  1. [J2EE/JSP] Gestion des erreurs avec une base SQL server 2005
    Par critok dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 30/04/2006, 16h57
  2. [Struts][JSP]gestion des session en JSP
    Par zola dans le forum Struts 1
    Réponses: 6
    Dernier message: 27/04/2006, 16h23
  3. gestion des sessions
    Par jeff_! dans le forum Langage
    Réponses: 4
    Dernier message: 20/03/2006, 22h09
  4. [tomcat] gestion des sessions
    Par sebos63 dans le forum Tomcat et TomEE
    Réponses: 2
    Dernier message: 12/10/2004, 14h25
  5. [JSP] Gestion de sessions
    Par orisis dans le forum Servlets/JSP
    Réponses: 6
    Dernier message: 30/03/2004, 15h36

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