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 :

S'authentifier selon les droits du groupe d'un utilisateur


Sujet :

Servlets/JSP Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Femme Profil pro
    Etudiante
    Inscrit en
    Avril 2012
    Messages
    203
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations professionnelles :
    Activité : Etudiante

    Informations forums :
    Inscription : Avril 2012
    Messages : 203
    Par défaut S'authentifier selon les droits du groupe d'un utilisateur
    Bonjour,

    Dans mon application, je travaille avec un menu que j’insère dans mes JSP et qui se compose de plusieurs onglets (liens html).
    Le problème est que l'authentification doit se faire selon les droits du groupe auquel appartient l'utilisateur.

    En effet, chaque droit convient à l'accès à l'un des onglet du menu
    pour résoudre ce problème. J'ai pensé à faire une condition sur chaque onglet(lien html)

    Je m'explique avec un exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <%if(..................group.getRight_security()=="false") %>
            <li><a href="#" class="parent"><span>Security</span></a> 
    <%else%>
            <li><a href="security.jsp" class="parent"><span>Security</span></a>
    Je ne suis pas sûr de la syntaxe en rouge.

    Quelqu'un saurait-il m'indiquer comment faire en sorte que ma procédure soit correcte ?

    Merci d'avance pour votre aide.

  2. #2
    Membre averti
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Décembre 2011
    Messages : 18
    Par défaut
    lorsque tu fais un if...else tu dois ajouter les ouvertures et fermetures des sections, comme ci-dessous

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <%if(..................group.getRight_security()=="false") {%>
            <li><a href="#" class="parent"><span>Security</span></a> 
    <% }else {%>
            <li><a href="security.jsp" class="parent"><span>Security</span>
    <%} %>
    PS : ta classe.getRight_security() devrait plutot retourner un boolean ou un int, tes traitements seraient plus efficace et ton code plus propres. Car un "==" n'est pas correct, un ".equals("chaine")" a la limite

  3. #3
    Membre éclairé
    Femme Profil pro
    Etudiante
    Inscrit en
    Avril 2012
    Messages
    203
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations professionnelles :
    Activité : Etudiante

    Informations forums :
    Inscription : Avril 2012
    Messages : 203
    Par défaut
    group.getRight_security() retourne un string mais je pense que je dois faire appel aux infirmations de la session, pour que la vérification des droits se fasse sur chaque JSP (ou le menu est inclut).

  4. #4
    Membre averti
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Décembre 2011
    Messages : 18
    Par défaut
    Dans ta servlet d'identification :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    HttpSession session = request.getSession(true);
    session.setAttribute("group",group);
    Dans ta page JSP :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Group group = (Group)session.getAttribute("group", group);
    Ensuite tu pourras utiliser ta variable dans ton code jsp, avec tout les attributs de ta classe.

    PS : Pour supprimer ta session ou enlever l'élément
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    session.removeAttribute("group");
    session.invalidate();

  5. #5
    Membre éclairé
    Femme Profil pro
    Etudiante
    Inscrit en
    Avril 2012
    Messages
    203
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations professionnelles :
    Activité : Etudiante

    Informations forums :
    Inscription : Avril 2012
    Messages : 203
    Par défaut
    Salut bcmlive,

    Bon j'ai bien fixé les conditions en dur sur chaque lien du menu et voilà une partie du code
    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
    <body>
    <%! connexion cnx5; %>
    <% 
    group grp = (group)session.getAttribute("group");
    %>
    <div id="menu">
        <ul class="menu">
            <li><a href="Home.jsp"><span>Home</span></a></li>
             <% if(grp.getRight_security()=="true"){%>
            <li><a href="#" class="parent"><span>Security</span></a>
                <ul>
                    <li><a href="ManageUsers.jsp"><span>Manage Users</span>          </a></li>
                    <li><a href="ManageGroups.jsp"><span>Manage Groups</span></a></li> </ul>
            </li>
            <%}
             else { %>
                    <li><a href="#" ><span>Security</span></a></li>
            <%} %>
            <% if(grp.getRight_template()=="true"){%>
     
            <li><a href="#" class="parent"><span>Template</span></a>
                <ul>  <li><a href="#" class="parent"><span>Add</span></a>
                               <ul>
                                   <li><a href="AddTemplateAuto.jsp"><span>Automatic</span></a></li>
                                   <li><a href="AddTemplateManuel.jsp"><span>Manuel</span></a></li>    
                               </ul>              
                      <li><a href="Liste.jsp"><span>List</span></a></li>     
                 </ul>
             </li>
             <%}
               else {%>
                       <li><a href="#" ><span>Template</span></a></li>
               <%} %>
            <li><a href="#"><span>Search</span></a></li>
            <li><a href="#"><span>Report</span></a></li>
            <li><a href="Command.jsp"><span>Command</span></a></li>
            <li class="last"><a href="#"><span>Help</span></a></li>
        </ul>
    </div>
    Ca ne donne pas d'erreurs mais ça fonctionne pas. Quand j'essaye de m'authentifier, je reste dans la page d’accueil et je pense que le problème est là, dans la jsp d'authentification 'd’accueil'.
    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
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    <%@page import="uuu.user"%>
    <%@page import="grp.group"%>
    <%@page import="bdd.connexion"%>
    <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
        pageEncoding="ISO-8859-1"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    <!-- refresh toutes les 60 secondes -->
     
    <title>Acceuil</title>
    <style>
    <!--
    .text
    {
    background-color:white;
    color:#413C3C;
            -moz-border-radius: 30px;
            -webkit-border-radius: 0px;
            border-radius:5px;
            width:80%;
            margin-top: 0%;
            margin-bottom: 2%;
            margin-left:0%;
            margin-right:0%;
    }
    .text:hover
    {
    background-color: #FFD9DF;
    }
    -->
    </style>
    </head>
    <body background="back.jpg">
    <%@ include file="date.jsp" %>
    <%! connexion cnx,cnx1; String res;%>
     
        <form action="" method="post">
        <div style="position: absolute; top: 200px; right:510px">
        <table align="center" frame="above"style="color:#413C3C">
     
               <tr><th colspan="2" align="center"><img src="inwi.jpg" ></img></th></tr>
               <tr><th colspan="2" align="center">Connexion</th></tr>
               <tr><th>Login : </th><td><input type="text" name="login" style="width:9.5em"  class="text"/></td></tr>
               <tr><th>Password : </th><td><input type="password" name="password" style="width:9.5em"  class="text" /></td></tr>
               <tr><th>Group : </th><td>  
                                     <select name="groupname" size="1" style="width:10em"  class="text">
                                        <% cnx1=new connexion("inwi");
                                            cnx1.Lire("SELECT `GroupName` FROM `group`"); 
                                            while(cnx1.Suiv()){
                                             res = cnx1.getrs().getString(1);%> 
                                            <option value = "<%=res%>"><%=res%></option>
                                        <%}%>
                                     </select>
                                    </td>
               </tr><tr><tr>
               <tr></tr><tr></tr><tr></tr><tr></tr>
    <tr>
    <td><input type="submit" value="Connect" style="width:7em; height:2em; margin-left:5em;"></td>
    <td><input type="reset" value="Reset" style="width:7em; height:2em"></td>
    </tr>
     
        </table>
        </div>
        </form>
    <%
    if(request.getParameter("login")!=null && request.getParameter("password")!=null )
    {
            cnx=new connexion("inwi");
            String lg=request.getParameter("login");
            String pass=request.getParameter("password");
            String gr_n=request.getParameter("groupname");
                
            cnx.Lire("select * from `user` where Login='"+lg+"' and Password='"+pass+"' and GroupName='"+gr_n+"'");
                cnx.Lire("select * from  `group` where GroupName='"+gr_n+"'");
                while(cnx.Suiv())                     
                {
                    group gr=new group(cnx.getrs().getString(1),cnx.getrs().getString(2),cnx.getrs().getString(3),cnx.getrs().getString(4),cnx.getrs().getString(5),cnx.getrs().getString(6));    
                     user uu = new user(cnx.getrs().getString(1),cnx.getrs().getString(2),cnx.getrs().getString(3),cnx.getrs().getString(4),cnx.getrs().getString(5),cnx.getrs().getString(6));
                             
                                          request.getSession().setAttribute("user",uu);
                                          request.getSession().setAttribute("group",gr);
                                          request.getRequestDispatcher("Home.jsp").forward(request, response);  
               
                }
    }%>
    </body>
    </html>
    Où y aurait-il une erreur dans ce code ?

    merci d'avance

  6. #6
    Membre averti
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Décembre 2011
    Messages : 18
    Par défaut
    En regardant rapidement, si t'as page retourne continuellement sur la page de login, c'est que t'a requete ne renvoie pas de résultat, debug ton code et vérifie qu'il passe bien dans ta boucle while().

    Je te conseils l'utilisation de Servlet pour simplifier la lisibilité de ton code, et pour le debug c'est beaucoup plus simple...

    Bon courage

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

Discussions similaires

  1. Comment définir les droits d'accès d'un utilisateur ?
    Par Klemsy78 dans le forum Langage
    Réponses: 17
    Dernier message: 12/07/2015, 22h12
  2. [Débutant] Est il possible de n'afficher qu'un type d'item dans une liste selon les droits
    Par jubourbon dans le forum Configuration
    Réponses: 5
    Dernier message: 07/01/2014, 11h54
  3. [IP-2010] Afficher/masquer selon les droits de l'utilisateur
    Par Kael_004 dans le forum InfoPath
    Réponses: 12
    Dernier message: 28/10/2013, 10h34
  4. [AC-2000] bloquer un bouton selon les droits de groupe
    Par polo31 dans le forum Sécurité
    Réponses: 2
    Dernier message: 31/07/2009, 11h26
  5. Réponses: 6
    Dernier message: 10/05/2007, 16h24

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