0

在 JSF2 中实现授权的最佳方式是什么?通过 servlet 过滤器、阶段侦听器或其他我不知道的新东西?

4

1 回答 1

2

这有两个部分:身份验证和授权。

首次身份验证:您可以将 web.xml 配置为根据 url 模式执行基于 JAAS 的身份验证。或者,如果基于 url 的身份验证对您来说太粗粒度,您可以使用 PhaseListener 或使用 HttpServletRequest login() 方法(Servlet 3.0 中的新方法)手动执行此操作。您可以通过FacesContext.getCurrentInstance().getExternalContext().

一旦您通过 JASS 领域的身份验证,您可以考虑基于角色的授权。同样有许多选择:

  1. 您可以根据 url-pattern 将页面访问限制为 web.xml 中的指定角色
  2. 您可以使用FacesContext.getCurrentInstance().getExternalContext().isUserInRole("role")以编程方式访问支持 bean 中的当前角色。
  3. 您可以根据用户角色使用表达式语言有条件地在视图中呈现组件。(Seam 有 s:hasRole EL 表达式,IceFaces 有 renderOnUserRole 属性,或者您可以从您自己的支持 bean 中公开角色)。
于 2010-06-02T14:48:05.093 回答