使用 Acegi 保护 Java 应用程序,第 4 部分: 保护 JSF 应用程序
2010-03-18 00:00:00 来源:WEB开发网servlet 容器创建一个 servlet 上下文对象,该对象封装应用程序资源(比如 JSP 页面、Java 类和应用程序初始化参数),并允许整个应用程序访问这些资源。JSF-Acegi 应用程序的所有其他组件(侦听器、过滤器,以及 servlet)在 servlet 上下文对象中以属性的形式存储与应用程序资源相关的信息。
servlet 容器通知 Acegi 的 ContextLoaderListener,servlet 上下文是通过调用 ContextLoaderListener 的 contextInitializated() 方法初始化的。
contextInitialized() 方法解析 Acegi 的配置文件,为 JSF-Acegi 应用程序创建 Web 应用程序上下文,以及实例化所有的安全过滤器和在 Acegi 配置文件中配置的 Jave bean。在以后 JSF 应用程序收到来自客户机的请求时,这些过滤器对象将会用于身份验证和授权(参阅 第 3 部分 中关于 Web 应用程序上下文创建的讨论和图 1)。
servlet 容器通知 JSF 的 ConfigureListener,servlet 上下文是通过调用 contextInitialized() 方法初始化的。
contextInitialized() 方法检查在 JSF 配置文件中配置的所有 JSF 托管 bean,确保 Java 类与每个 bean 并存。
servlet 容器检查 web.xml 文件中任何配置的过滤器。例如,清单 1 中的 web.xml 文件包含一个 Acegi 过滤器 FilterToBeanProxy,servlet 容器将其实例化、初始化并注册为一个过滤器。Acegi 现在可以对传入的请求执行身份验证和授权了。
servlet 容器实例化 faces servlet,后者开始侦听从用户传入的请求。
下一节解释 JSF-Acegi 应用程序收到来自用户的请求时发生的一系列事件。
处理对受 Acegi 保护的 JSF 页面的请求
更多精彩
赞助商链接