JSF 2 - доступ к странице в зависимости от роли пользователя - PullRequest
3 голосов
/ 04 июля 2011

В настоящее время используется: JBoss 6 (разработка на GlassFish 3.1), JSF 2.0, аутентификация на основе форм с JAAS (без «публичных» страниц, все требует аутентификации).

Веб-приложение предоставляет две разные страницы поиска (например, search1.jsf и search2.jsf), доступные с index.jsf, но для пользователей, которые не принадлежат к специальной роли с дополнительными правами, search2.jsf не должен быть доступен .

«Стандартным» способом защиты search2.jsf будет конфигурация в web.xml, которая требует специальной роли пользователя для этой страницы. Существуют ли другие способы динамической защиты второй страницы поиска, основанные на роли или на основе пользовательских атрибутов, которые не вводят дополнительные структуры аутентификации или специфичные для контейнера функции?

Отключить ссылку в index.jsf, которая указывает на search2.jsf, легко, но пользователи могут ввести URL-адрес второй поисковой страницы в браузере, чтобы увидеть ее (поэтому для прототипа я настрою web.xml).

1 Ответ

4 голосов
/ 05 июля 2011

Существуют ли другие способы динамической защиты второй страницы поиска, основанные на роли или на основе пользовательских атрибутов, которые не вводят дополнительные структуры аутентификации или специфичные для контейнера функции?

Вы можете использовать EL в <ui:include>.Создайте общедоступную главную страницу search.xhtml, которая включает search1.xhtml или search2.xhtml в зависимости от роли пользователя.

Например,

<ui:include src="/WEB-INF/search#{request.isUserInRole('admin') ? 1 : 2}.xhtml" />

(эти включенные файлы помещаются в /WEB-INF, чтобы клиент не мог запросить его напрямую)

Затем откройтевместо этого просто на search.xhtml.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...