快速业务通道

使用Acegi保护Java应用程序,第4部分: 保护JSF应用程序 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-15
置文件的位置。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 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号