To prevent a user role from performing an action.
- Example 1: The role "administrator" is the only role allowed to perform destroy action.
- Example 2: Any role different from "guest" can perform CREATE action.
In a real case, I have this:
public String delete() {
if(FacesContext.getCurrentInstance().getExternalContext().isUserInRole("administrator"){
//.....the action to perform
}
return "Denied";
}
I wish I could use the annotation @RolesAllowed()
of EJB yet I am not using EJB but ManagedBeans.
So the question is: Is there any way to use many roles at the same time? Some workaround!
Example: If an action must be allowed to 3 roles (administrator, moderator, manager). I am obliged to do :
if (FacesContext.getCurrentInstance().getExternalContext().isUserInRole("administrator")
|| FacesContext.getCurrentInstance().getExternalContext().isUserInRole("manager")
|| .....) {
//....
}
And it is a pain to reproduce on all the methods. Something like hundreds of methods :(