Bonjour,
Je souhaite créer un menu dont les éléments sont affichés en fonction des security-constraints du web.xml.
Le problème est que je n'arrive pas à trouver l'entrer à ces données.
Une idée ?
Merci d'avance
Piopium
Version imprimable
Bonjour,
Je souhaite créer un menu dont les éléments sont affichés en fonction des security-constraints du web.xml.
Le problème est que je n'arrive pas à trouver l'entrer à ces données.
Une idée ?
Merci d'avance
Piopium
Tu peux retrouver lobjet user principal ou le role, à partir de l'objet request.
le faces-config ne contient pas ce genre d'informations,
Le faces-config non mais le web.xml oui.
Et j'ai l'impression qu'on ne peut pas accéder à ces données ce qui m'embête beaucoup. Car je n'ai pas envi d'avoir plusieurs fichiers à modifier si je dois faire de la mise à jour.
j'ai une série d'utilisateurs avec des rôles, tout cela est défini dans le fichier tomcat-users.xml.
Dans mon fichier web.xml j'ai déclaré des security-constraint pour empêcher l'accès certaines pages.
J'ai un menu (fait en richfaces) dont l'affichage doit dépendre des rôles, en gros je ne veux pas qu'apparaisse dans le menu des menuItem dont je sais pertinemment qu'ils retourneront une erreur d'accès si l'utilisateur.
Exemple, j'ai 2 rôles "role1" et "role2".
role1 à accès à tous et role2 est contraint.
Pour role1 le menu sera composé de "menu1", "menu2", et "menu3".
Alors que role2 ne verra que "menu1" "menu3".
Pour bloquer l'affichage je compte passer par l'attribut rendered des composant mais c'est la méthode derrière qui me bloquent car je n'ai pas envi de devoir réécrire l'équivalent de mes security-constraint ce qui m'obligerait à avoir une double gestion et donc une source d'erreurs potentiel.
tu peux vérifier le rôle à l'aide de la méthode isUserInRole de l'objet request:
Code:boolean isUserInRole(java.lang.String role) ;
Il suffit de définir un booléen qui utilise cette méthode pour définir si le menu doit être visible.Citation:
Returns a boolean indicating whether the authenticated user is included in the specified logical "role".
Si tu ne vois pas comment récupérer l'objet request dans un managedBean, regarde la faq.
oui c'est bien ce que je comptais utiliser mais j'ai besoin d'une correspondance page<->rôle. Or cette correspondance existe dans le web.xml et je souhaite y accéder plutôt que d'écrire un autre fichier et donc double gestion etc. etc.
Je suis bien d'accord avec toi et c'est pour ça que j'ai posté sur le forum car pour ma part je n'ai toujours pas trouvé.