使用Acegi保护Java应用程序,第4部分: 保护JSF应用程序 - 编程入门网
使用Acegi保护Java应用程序,第4部分: 保护JSF应用程序时间:2011-09-07 ibm Bilal Siddiqui针对 JavaServer Faces 应用程序的可配置安全性 本 系列 的前 3 部分讨论了如何使用 Acegi Security System 保护 Java 企业应用程序: 第 1 部分 解释了如何使用 Acegi 的内置过滤器实现一个简单的基于 URL 的安全系统。 第 2 部分 展示了如何编写访问控制策略、将其存储在 LDAP 目录服务器中 ,以及配置 Acegi 与 LDAP 服务器交互,从而实现访问控制策略。 第 3 部分 展示了如何在企业应用程序中使用 Acegi 保护对 Java 类实例的 访问。 第 4 部分将讨论如何使用 Acegi 保护在 servlet 容器中运行的 JavaServer Faces (JSF) 应用程序。本文首先解释 Acegi 针对此目标提供的特 性,并澄清一些关于使用 Acegi 和 JSF 的常见误解。然后提供一个简单的 web.xml 文件,可以用来部署 Acegi,从而保护 JSF 应用程序。然后深入探讨 Acegi 和 JSF 组件,了解在部署 web.xml 文件和用户访问 JSF 应用程序时所 发生的事件。本文最后提供了一个由 Acegi 保护的示例 JSF 应用程序。 无需编写 Java 代码即可添加安全性 回顾一下本系列的第一个示例 Acegi 应用程序(请参阅 第 1 部分 中的 “ 一个简单 Acegi 应用程序” 一节)。该应用程序使用 Acegi 提供了以下安全 特性: 当一个未经验证的用户试图访问受保护的资源时,提供一个登录页面。 将授权用户直接重定向到所需的受保护资源。 如果用户未被授权访问受保护资源,提供一个访问拒绝页面。 回想一下,您无需编写任何 Java 代码就能获得这些特性。只需要对 Acegi 进行配置。同样,在 JSF 应用程序中,无需编写任何 Java 代码,也应该能够 从 Acegi 实现相同的特性。 澄清误解 其他一些作者似乎认为将 Acegi 与 JSF 集成需要 JSF 应用程序提供登录页 面。这种观点并不正确。在需要时提供登录页面,这是 Acegi 的职责。确保登 录页面在安全会话期间只出现一次,这也是 Acegi 的职责。然后,经过身份验 证和授权的用户可以访问一个受保护资源,无需重复执行登录过程。 如果使用 JSF 提供登录页面,将会发生两个主要的问题: 当需要时,没有利用 Acegi 的功能提供登录页面。必须编写 Java 代码实现 所有逻辑来提供登录页面。 至少需要编写一些 Java 代码将用户凭证(用户名和密码)从 JSF 的登录页 面移交到 Acegi。 Acegi 的目的是避免编写 Java 安全代码。如果使用 JSF 提供登录页面,则 没有实现这一用途,并且会引发一系列其他 JSF-Acegi 集成问题,所有这些问 题都源于 “Acegi 是用来提供可配置安全性” 这一事实。如果试图使用 JSF 来完成 Acegi 的工作,将会遇到麻烦。 本文余下部分将解释并演示独立于 Acegi 的 JSF 应用程序开发,并在稍后 配置 Acegi 以保护 JSF 应用程序 — 无需编写任何 Java 代码。首先看一下 web.xml 文件,可以部署该文件保护 JSF 应用程序。 使用Acegi保护Java应用程序,第4部分: 保护JSF应用程序(2)时间:2011-09-07 ibm Bilal Siddiqui部署 Acegi 保护 JSF 应用程序 清单 1 展示了一个 web.xml 文件(通常称为部署描述符),可以使用这个 文件部署 Acegi,从而保护运行在 servlet 容器(比如 Apache Tomcat)中的 JSF 应用程序: 清单 1. 用于部署 Acegi 和 servlet 容器中的 JSF 的 web.xml 文件
|
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |