Уровень безопасности доступа (ACL) с Java EE 6? - PullRequest
0 голосов
/ 17 марта 2011

Я занимаюсь разработкой веб-приложения, в котором есть несколько ролей, таких как «Админ», «Репортер», «Менеджер», «Клиент.Агент». Основываясь на роли, необходимо отобразить некоторые пункты меню. Администратор может дать разрешение (динамически) пользователю, скажем, Агент (что не является разрешением по умолчанию). Есть ли лучший способ справиться с этой ситуацией ??

Спасибо

1 Ответ

1 голос
/ 23 марта 2011

У вас может быть какой-то контроллер, который отвечает за логику разрешений. У вас будет система разрешений, где вы можете предоставлять определенные разрешения определенным пользователям / группам. Контроллер может быть реализован как управляемый JSF-компонент. У вас может быть такой метод:

public boolean hasPermission(PermissionKey permissionKey) {
...
}

Этот метод будет проверять роль + определенные разрешения.

PermissionKey, в этом примере, будет перечислением, но вы можете сделать его строкой или чем-то еще. Возможные значения: «DELETE_ACCOUNT» или «HANDLE_PAYMENT».

В ваших представлениях вы можете просто условно отображать такие компоненты:

<h:outputText value="some text" rendered="#{authController.hasPermission('DELETE_ACCOUNT')}" />
...