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

Spring Java Discussion :

Comment utiliser le tag "authorize" avec des droits dynamiques [Security]


Sujet :

Spring Java

  1. #1
    Membre régulier
    Homme Profil pro
    Inscrit en
    Avril 2005
    Messages
    307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Avril 2005
    Messages : 307
    Points : 110
    Points
    110
    Par défaut Comment utiliser le tag "authorize" avec des droits dynamiques
    Bonjour tout le monde,

    J'utilise Spring 3 et spring Security pour le développement d'une application web.

    L'utilisateur possède plusieurs "types" de droits :
    • applicatif : administrateur, manager, collaborateur...
    • projet : coordinateur, planificateur...

    Il ne possède qu'un seul role applicatif, mais peut participer à plusieurs projets et avoir plusieurs rôles au sein d'un même projet.

    Lors de l'affichage d'un projet, suivant son (ou ses) rôle(s) au sein de ce projet, certains éléments doivent être affichés ou non.

    Le tag <sec:authorize> fonctionne donc parfaitement avec les droits applicatifs mais pose problème avec les droits "projets" puisque l'attribut "ifAnyGranted" doit être saisi en dur dans le code JSP. Par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <sec:authorize ifAnyGranted ="ROLE_ADMIN,ROLE_MNGR">
         ...
    </sec>
    Je ne peux pas écrire par exemple "<sec:authorize ifAnyGranted ="ROLE_PLANIFICATEUR">" puisqu'il faut que l'utilisateur ait le role ROLE_PLANIFICATEUR pour le projet affiché.

    Comment l'adapter à ma situation ?

  2. #2
    Membre à l'essai
    Inscrit en
    Septembre 2010
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 10
    Points : 14
    Points
    14
    Par défaut
    Salut,
    Pour simuler la dynamicite des droits, j'atomise les roles aux fonctionalites de l'application. Donc chaque fonction (du menu) possede un droit. Et, je fais donc varier ces droits chez les utilisateurs.
    par exemple :
    <sec:authorize if="UNE_TACHE_ADMIN">
    ...
    </sec:authorize>
    <sec:authorize if="CREER_COORDINATION">
    ...
    </sec:authorize>
    <sec:authorize if="MODIFIER_COORDINATION">
    ...
    </sec:authorize> ainsi de suite.

  3. #3
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Septembre 2006
    Messages
    2 950
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 2 950
    Points : 4 373
    Points
    4 373
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <sec:authorize access="SpEL_Expression" />
    avec Spring 3.x, le fait que "access" accepte un expression SpEL doit vous permettre de faire ce que vous voulez.

    et vous avez aussi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    <sec:accesscontrollist hasPermission="SOME_PERM" domainObject="SOME_OBJECT">
    …
    à condition d'ajouter le module Spring Security's ACL.

  4. #4
    Membre régulier
    Homme Profil pro
    Inscrit en
    Avril 2005
    Messages
    307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Avril 2005
    Messages : 307
    Points : 110
    Points
    110
    Par défaut
    Bonjour,

    Je ne connaissais pas du tout les expressions SpEL. C'est intéressant.
    J'avais également lu des articles sur les accessControlList, mais ça me paraissait difficile à mettre en place.

    J'ai développé mon propre taglib. Il fonctionne un peu comme le tag Authorize de Spring Security, mais fait appel à mon ProjectVoter...

    Merci pour vos conseils.

  5. #5
    Membre à l'essai
    Inscrit en
    Septembre 2010
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 10
    Points : 14
    Points
    14
    Par défaut
    Salut,
    Merci pour ta reponse. Je vais egalement m'y mettre.

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

Discussions similaires

  1. [DisplayTag] Comment utiliser Display tag
    Par myriam818 dans le forum Taglibs
    Réponses: 1
    Dernier message: 29/11/2007, 13h44
  2. comment utiliser display tag
    Par jamelbenalla dans le forum Struts 1
    Réponses: 1
    Dernier message: 24/10/2006, 08h54

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