快速业务通道

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

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-15

使用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 文件

<?xml version="1.0"?> <!DOCTYPE web-app PUBLIC   "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"   "http://java.sun.com/dtd/web-app_2_3.dtd"> <web-app>    <context-param>      <param-name>contextConf

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站: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号