使用Acegi保护Java应用程序,第4部分: 保护JSF应用程序 - 编程入门网
置文件的位置。JSF 配 置文件的详细信息不属于本文讨论的范围。
为 Acegi 和 JSF 配置侦听器 现在看一下 清单 1 中的 2 个 <listener> 标记。<listener> 标记定义侦听器类,侦听器类侦听并处理 JSP 或 servlet 应用程序启动和执行 期间发生的事件。例如: 启动 JSP 或 servlet 应用程序时,servlet 容器创建一个新的 servlet 上 下文。每当 JSP 或 servlet 应用程序启动时,就会触发此事件。 servlet 容器创建一个新的 servlet 请求对象。每当容器从客户机收到一个 HTTP 请求时,此事件就会发生。 建立一个新的 HTTP 会话。当请求客户机建立一个与 servlet 容器的会话时 ,此事件就会发生。 一个新属性被添加到 servlet 上下文、servlet 请求和 HTTP 会话对象。 servlet 上下文、servlet 请求或 HTTP 会话对象的一个现有属性被修改或 删除。 <listener> 标记就像一种可扩展性机制,允许在 servlet 容器内部 运行的应用程序协同某些事件进行处理。servlet 规范定义了侦听器类为处理事 件而实现的一些接口。 例如,Spring Framework 实现一个 javax.servlet.ServletContextListener servlet 接口。实现此接口的 spring 类是 org.springframework.web.context.ContextLoaderListener。注意,这是 清单 1 的第一个 <listener> 标记中的侦听器类。 类似地,JSF 实现一个 com.sun.faces.config.ConfigureListener 类,该 类实现一些事件-侦听接口。可以在 清单 1 的第二个 <listener> 标记 中找到 ConfigureListener 类。 本文稍后将解释不同的事件-侦听器接口,以及 Acegi 和 JSF 事件-侦听器 类内部执行的处理(请参阅 “启动 JSF-Acegi 应用程序” 和 “处理对受 Acegi 保护的 JSF 页面的请求”)。 使用Acegi保护Java应用程序,第4部分: 保护JSF应用程序(4)时间:2011-09-07 ibm Bilal Siddiqui配置和映射 servlet 过滤器 现在看一下 清单 1 中的 <filter> 标记。在请求的 servlet 处理传 入的请求之前,servlet 应用程序使用过滤器对其进行预处理。在请求执行之前 ,Acegi 使用 servlet 过滤器对用户进行身份验证。 请注意 清单 1 中的 <filter> 标记,它的 <filter-class> 子标记指定一个 org.acegisecurity.util.FilterToBeanProxy 类。 FilterToBeanProxy 类是 Acegi 的一部分。此类实现一个 javax.servlet.Filter 接口,该接口是 servlet 应用程序的一部分。 javax.servlet.Filter 接口有一个 doFilter() 方法,servlet 容器在收到请 求时调用该方法。 还需注意,清单 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 应用程序都包含这两个标记,所以无需 再作讨论。 现在,您已经 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |