В версии языка выражений в Java EE 6 вы сможете использовать выражения, подобные этим:
<h:inputText rendered="#{facesContext.externalContext.isUserInRole('foo')}" />
В более старых версиях вы можете создать управляемый компонент этой формы:
public class RoleMap implements Map<String, Boolean> {
public Boolean get(Object key) {
ExternalContext extCtxt = FacesContext.getCurrentInstance()
.getExternalContext();
return extCtxt.isUserInRole(key.toString());
}
//TODO: other methods; mostly throwing UnsupportedOperationException
Тест может быть выражен в виде:
<h:inputText rendered="#{roleMap['foo']}" />
Сторонние платформы предлагают другие варианты, такие как атрибуты компонента visibleOnUserRole
библиотеки Apache Tomahawk.