2010-06-02 10 views
0

Quelle est la meilleure façon de mettre en œuvre l'autorisation dans JSF2? , filtre de servlet, écouteur de phase ou ther est quelque chose de nouveau que je ne suis pas au courant?autorisation dans JSF2

+0

http://stackoverflow.com/a/2207147/2214674 – kinkajou

Répondre

2

Il y a deux éléments à cela: l'authentification et l'autorisation.

Première authentification: Vous pouvez configurer votre fichier web.xml pour effectuer une authentification JAAS selon un modèle d'URL. Alternativement, si l'authentification basée sur l'URL est trop grossière pour vous, vous pouvez le faire manuellement avec un PhaseListener ou des actions de page en utilisant la méthode HttpServletRequest login() (nouveau dans Servlet 3.0). Vous pouvez accéder à cette méthode via le FacesContext.getCurrentInstance().getExternalContext(). Une fois authentifié dans un domaine JASS, vous pouvez envisager une autorisation basée sur les rôles. Encore une fois, il y a un certain nombre d'options:

  1. Vous pouvez restreindre l'accès aux pages aux rôles spécifiés dans le web.xml selon un motif url
  2. Vous pouvez utiliser le FacesContext.getCurrentInstance().getExternalContext().isUserInRole("role") pour accéder par programme le rôle actuel dans votre soutien des haricots.
  3. Vous pouvez effectuer un rendu conditionnel des composants dans la vue à l'aide du langage d'expression, en fonction du rôle de l'utilisateur. (Seam a l'expression s: hasRole EL, IceFaces a l'attribut renderedOnUserRole, ou vous pouvez exposer le rôle à partir de votre propre bean backing).