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

Struts 1 Java Discussion :

[Struts 1.3.8] Gestion des autorisations


Sujet :

Struts 1 Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Inscrit en
    Septembre 2009
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 11
    Par défaut [Struts 1.3.8] Gestion des autorisations
    Bonjour,

    Je n'ai pas vu ce sujet dans la FAQ, du coup je vous sollicite pour m'éclairer sur la gestion des autorisations avec Struts.

    L'idée est la suivante (très classique...) :

    1 - Un utilisateur s'identifie sur l'application.
    2 - Si l'identification réussi, les autorisations associées sont chargées.
    3 - Les autorisations sont telles que certains éléments des pages jsp ne sont plus visibles (item des menus par exemple) ou désactivés (éléments de formulaires tels que des boutons, inputs, etc.).

    Afin d'implémenter cette gestion des autorisations, j'avais pensé à la méthode suivante :
    1 - Lors de l'identification, création d'une HashMap contenant les autorisations et stockage de celle-ci dans la session. Dans la HashMap, les autorisations seraient représentées par des associations clé/booléen. La clé serait du type "nomPageJsp.champ".
    2 - Lors de la demande d'une page JSP, on récupère dans l'Action les autorisations : Celles-ci vont venir "peupler" des champs correspondant dans le Form.
    3 - Génération de la page JSP en fonction des valeurs présentes dans le Form.

    Etant novice en la matière, je ne sais pas si cette méthode est la plus adaptée, tant en terme de gestion des autorisations que de sécurité de l'application.

    Avez-vous une référence de "design pattern" pouvant m'aider à réaliser une bonne implémentation des autorisations dans Struts ?

    Merci

  2. #2
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Billets dans le blog
    1
    Par défaut
    Suggestion :

    Si la notion de rôle suffit pour ton besoin, je te conseille d'utiliser l'authentification serveur.
    Comme ceci, tu auras la possibilité de faire des tests
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <% if (request.isUserInRole("Role1")) { %>
    ...
    <% } %>
    et d'externaliser la gestion des utilisateurs/rôles

    Il est vrai que trainer des blocs de tests comme celui-ci n'est pas très élégant mais tu peux créer un taglib pour plus de lisibilité.

    Maintenant, si le rôle n'est pas une notion suffisante, il faudrait créer un taglib qui encapsulera toute la logique de tests, la page sera plus simple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <malib:auth>
     
    ... les autres balises jsp...
     
    </malib:aut>
    A+
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre habitué
    Inscrit en
    Septembre 2009
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 11
    Par défaut
    Whaooo ! Ca à l'air de ne pas être aussi simple que je le pensais...
    En même temps, vue que la notion de rôles n'est pas suffisante dans le cas de cette application (granularité plus approfondie), il va falloir mettre ce type de solution (je ne comprends pas trop son fonctionnement - Peut-on m'indiquer un lien vers lequel je serai susceptible de trouver plus d'infos ?).

    D'autre part, si l'application dispose de 20 pages JSP, sur lesquelles on doit appliquer les autorisations (4 à 5 par page), la solution utilisant les taglibs est-elle bien adaptée ?

    Merci

  4. #4
    Membre habitué
    Inscrit en
    Septembre 2009
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 11
    Par défaut
    J'ai trouvé ce lien et il s'avère assez intéressant pour implémenter la solution proposée :

    https://www.ibm.com/developerworks/library/wa-appsec/

    Cependant, je ne comprends pas comment s'effectuent les appels avec lka nouvelle taglib dans la page jsp. Quelqu'un peut-il m'aider ?
    Merci.

  5. #5
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Billets dans le blog
    1
    Par défaut
    Il faut dans un premier temps créer une tld. Tu peux partir d'une existante et l'adapter à ton tag par exemple.
    Ensuite, tu places cette tld dans le répertoire /WEB-INF/ (par exemple) et tu la références dans web.xml comme ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    ...
    <taglib>
      <taglib-uri>/WEB-INF/maTaglib</taglib-uri>
      <taglib-location>/WEB-INF/maTaglib.tld</taglib-location>
    </taglib>
    ...
    Dans ta page, tu places la directive
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <%@ taglib uri="/WEB-INF/maTaglib" prefix="auth" %>
    et ensuite tu peux l'utiliser
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <auth:monTag>
       ....
    </auth:monTag>
    A noter que le référencement dans web.xml n'est pas obligatoire, on pourrait directement utiliser la taglib comme ceci dans les pages.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <%@ taglib uri="/WEB-INF/maTaglib.tld" prefix="auth" %>
    Mais c'est nettement plus propre tout de même avec le référencement, et si tu changes l'emplacement de la tld, tu n'auras pas à modifier les pages
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  6. #6
    Membre habitué
    Inscrit en
    Septembre 2009
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 11
    Par défaut
    Merci OButterlin
    C'est justement la base JSP que je n'avais pris le temps de bien comprendre et l'exemple que tu me proposes clarifie trés bien la démarche.

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

Discussions similaires

  1. [ZF 1.10] Zend Acl gestion des autorisations sur les actions
    Par gogololo dans le forum Zend Framework
    Réponses: 2
    Dernier message: 28/07/2010, 10h27
  2. gestion des autorisations (droits) par repertoire
    Par tiboleo dans le forum ASP.NET
    Réponses: 3
    Dernier message: 06/01/2010, 23h05
  3. Gestion des autorisations d'abonnement
    Par pjeandroz dans le forum SharePoint
    Réponses: 1
    Dernier message: 14/04/2008, 23h59
  4. Gestion des autorisations sur WSS 3
    Par Parkman dans le forum SharePoint
    Réponses: 1
    Dernier message: 07/02/2008, 10h12
  5. Réponses: 2
    Dernier message: 18/09/2006, 09h55

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