Ca peut se faire avec JAAS, sous glassfish tu peux créer ton propre Realm pour récupérer comme tu le souhaite les users/profils (Ou utiliser le realm JDBC si il peut convenir). Ce realm permet de faire le lien entre un User et ses Groups. Je suppose qu'il y a des équivalents sur les autres serveurs d'application.
Ensuite dans ton web.xml tu fais le lien entre un Group et un ou plusieurs Role.
Et dans JSF tu peux te créer un ManagedBean de type session qui te permette de savoir si un User possède un rôle ou non.
Ex de méthode du managed bean :
1 2 3 4 5 6 7 8
|
public boolean isUserInRole(String role)
{
HttpServletRequest request =
(HttpServletRequest) FacesContext.getCurrentInstance().
getExternalContext().getRequest();
return request.isUserInRole(role);
} |
Dans ta page tu peux ensuite filtrer ton affichage avec les propriétés rendered des composants.
<h:outputText rendered="#{monBean.isUserInRole('admin')}" ...
Partager