WEB开发网
开发学院软件开发Java 使用 Acegi 保护 Java 应用程序,第 4 部分: 保护... 阅读

使用 Acegi 保护 Java 应用程序,第 4 部分: 保护 JSF 应用程序

 2010-03-18 00:00:00 来源:WEB开发网   
核心提示: 还需注意,清单 1 的 <filter> 标记有另一个子标记 <init-param>,使用 Acegi 保护 Java 应用程序,第 4 部分: 保护 JSF 应用程序(5),<init-param> 标记指定实例化 FilterToBeanProxy 类所

还需注意,清单 1 的 <filter> 标记有另一个子标记 <init-param>。<init-param> 标记指定实例化 FilterToBeanProxy 类所需的参数。可以从 清单 1 中看出,FilterToBeanProxy 类只需要一个参数,该参数是 FilterChainProxy 类的一个对象。FilterChainProxy 类表示 第 1 部分 1 中讨论的整个 Acegi 过滤器链(请参阅 “安全过滤器” 小节)。FilterToBeanProxy 类的 doFilter() 方法使用 FilterChainProxy 类执行 Acegi 的安全过滤器链。

清单 1 中的 <filter-mapping> 标记指定调用 Acegi 的 FilterToBeanProxy 的请求 URL。我已经将所有的 JSF 页面映射到 Acegi 的 FilterToBeanProxy。这意味着只要用户试图访问 JSF 页面,FilterChainProxydoFilter() 方法就会自动获得控制权。

配置 JSF servlet

web.xml 文件中的 <servlet> 标记指定希望从特定 URl 调用的 servlet(在本例中是一个 JSF servlet)。<servlet-mapping> 标记定义该 URL。几乎所有的 JSP 或 servlet 应用程序都包含这两个标记,所以无需再作讨论。

现在,您已经看到,web.xml 文件要部署 Acegi 以保护 JSF 应用程序所需的所有标记。您已经了解了侦听器、过滤器和 servlet 如何相互协作。从这里的讨论中可以看出,如果在 servlet 容器中部署 清单 1 中的 web.xml 文件,Acegi 和 JSF 都试图在两种情形下进行一些处理:

当启动应用程序时

当应用程序收到对 JSF 页面的请求时

接下来的两节解释每种情况中发生的一系列事件。

启动 JSF-Acegi 应用程序

图 1 展示了在 JSF-Acegi 应用程序启动时发生的事件顺序:

图 1. JSF-Acegi 应用程序启动时发生的事件顺序
使用 Acegi 保护 Java 应用程序,第 4 部分: 保护 JSF 应用程序


上一页  1 2 3 4 5 6 7 8 9  下一页

Tags:使用 Acegi 保护

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接