JSF 2.0, как отобразить элемент в зависимости от прав пользователя? - PullRequest
3 голосов
/ 08 июня 2011

Я пишу приложение, используя JSF 2.0, java ee и glassfish.

Мой пользовательский интерфейс - простой xhtml, содержащий jsf.

Я хочу, чтобы мой пользователь входил в систему, и в зависимости от его права на одних и тех же страницах отображаются разные элементы.

возможно ли использование jaas?

Заранее спасибо Лоик

1 Ответ

6 голосов
/ 08 июня 2011

Если вы не хотите писать код типа фреймворка, чтобы сделать это «за кулисами», вы можете привязать визуализированный атрибут компонента к методу, который проверяет права доступа пользователя, например,

public boolean isUserAllowedAccess() {
        return FacesContext.getCurrentInstance().getExternalContext().
           isUserInRole("ROLE_ADMIN");
         // or whatever authorization code you want
    }

и затем обратитесь к нему в атрибуте «рендеринг» ваших JSF-тегов, например:

rendered="#{authBean.userAllowedAccess}"

. Вы можете обернуть несколько компонентов, используя панели, например,

<h:panelGroup rendered="#{authBean.userAllowedAccess}">
...