2010-06-02 8 views
0

Каков наилучший способ реализации авторизации в JSF2? через, сервлет-фильтр, фазовый прослушиватель или что-то новое, о чем я не знаю?авторизация в JSF2

+0

http://stackoverflow.com/a/2207147/2214674 – kinkajou

ответ

2

Для этого есть две части: аутентификация и авторизация.

Первая аутентификация. Вы можете настроить свой web.xml для проверки подлинности на основе JAAS в соответствии с шаблоном url. В качестве альтернативы, если аутентификация на основе URL слишком грубовата для вас, вы можете сделать это вручную с помощью действий PhaseListener или страницы с помощью метода входа() в HttpServletRequest (новый в Servlet 3.0). Вы можете получить доступ к этому методу через FacesContext.getCurrentInstance().getExternalContext().

Как только вы пройдете проверку подлинности в сфере JASS, вы можете рассмотреть возможность авторизации на основе ролей. Опять же есть несколько вариантов:

  1. Вы можете ограничить доступ к странице указанных ролей в web.xml в соответствии с URL-шаблон
  2. Вы можете использовать FacesContext.getCurrentInstance().getExternalContext().isUserInRole("role") для программного доступа к текущей роли в вашей поддержке фасоль.
  3. Вы можете условно визуализировать компоненты в представлении, используя Expression Language, на основе роли пользователя. (Seam имеет выражение s: hasRole EL, IceFaces имеет атрибут renderedOnUserRole, или вы можете выставить роль из своего собственного бэк-файла).