Précédent   Forum des professionnels en informatique > Java > Général Java > Spring
Spring Forum d'entraide pour le framework Spring. Avant de poster -> FAQ Spring
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 02/01/2012, 17h50   #1
Membre régulier
 
Homme Lionel ANDRE
Inscription : avril 2005
Messages : 294
Détails du profil
Informations personnelles :
Nom : Homme Lionel ANDRE
Âge : 27
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations forums :
Inscription : avril 2005
Messages : 294
Points : 77
Points : 77
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 :
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 ?
andlio est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/01/2012, 17h52   #2
Candidat au titre de Membre du Club
 
Inscription : septembre 2010
Messages : 10
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 10
Points : 12
Points : 12
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.
lewarrior22 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/01/2012, 19h03   #3
Expert Confirmé
 
Homme
Inscription : septembre 2006
Messages : 2 291
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : septembre 2006
Messages : 2 291
Points : 2 738
Points : 2 738
Code :
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 :
1
2
3
 
<sec:accesscontrollist hasPermission="SOME_PERM" domainObject="SOME_OBJECT">
à condition d'ajouter le module Spring Security's ACL.
JeitEmgie est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/02/2012, 08h55   #4
Membre régulier
 
Homme Lionel ANDRE
Inscription : avril 2005
Messages : 294
Détails du profil
Informations personnelles :
Nom : Homme Lionel ANDRE
Âge : 27
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations forums :
Inscription : avril 2005
Messages : 294
Points : 77
Points : 77
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.
andlio est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/02/2012, 13h00   #5
Candidat au titre de Membre du Club
 
Inscription : septembre 2010
Messages : 10
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 10
Points : 12
Points : 12
Salut,
Merci pour ta reponse. Je vais egalement m'y mettre.
lewarrior22 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 03h44.


 
 
 
 
Partenaires

Hébergement Web