使用Acegi保护Java应用程序,第3部分: 实现对Java对象的访问控制

使用基于方法的安全性保护 Java 类实例

这期共分三部分的系列文章介绍了如何使用 Acegi 安全系统保护 Java 企业 应用程序。系列文章的 第 1 部分 简单介绍了 Acegi 并解释如何使用其内置的 安全过滤器实现一个简单的、基于 URL 的安全系统。第 2 部分 介绍了如何编 写访问控制策略并将其保存到一个 LDAP 目录服务器,以及如何配置 Acegi 来 与目录服务器进行交互,从而实现访问控制策略。第 3 部分(也是本系列的最 后一篇文章)将演示如何在企业应用程序中使用 Acegi 保护对 Java 类实例的 访问。

首先我将介绍何时需要对 Java 类访问进行保护,包括文中引用的两个典型 企业应用程序场景。之后,我将解释 Spring 的反转控制(IOC)框架如何创建 可从 JSP 或 servlet 访问的 Java 类实例。我还将介绍有关 bean 代理 的重 要概念,Spring 正是使用它过滤对 Java 类的访问。最后,我将介绍如何对 Acegi 的方法安全性拦截器进行配置以控制对 Java 类的访问。我将对 第 2 部 分 中的示例程序进行增强,为实现安全的 Java 对象提供支持,从而结束本系 列的最后一篇文章。

由于本文的讨论构建在本系列前两部分的内容之上,因此会经常引用到 第 1 部分 和 第 2 部分 中的讨论和示例。因此,在继续阅读本文之前,在其他浏览 器窗口中打开前两期文章将有助于理解本文内容。

保护 Java 类的用例

您可能还记得,我曾在本系列的开头部分简单介绍了 企业应用程序安全性。 在那次讨论中我曾提到过一种场景,其中 URL 安全性并不能完全满足这种场景 的安全需求:

假设有这样一个 PDF 文档,其中包含了某制造业公司生产的特定产品的数据 。文档的一部分包含了设计数据,将由公司设计部分进行编辑和更新。文档另一 部分包含生产经理将使用到的生产数据。对于此类场景,需要实现更加细粒度的 安全性,对文档的不同部分应用不同的访问权限。

在继续阅读之前,请考虑更多的应用程序场景,除了实现 URL 安全性以外, 这些场景还要求您对单独的类访问进行保护。

业务自动化

业务自动化应用程序中的工作流由多个流程组成。例如,病理学实验室中执 行血液测试的工作流由若干个步骤组成,其中每个步骤可看作一个业务流程:

工作人员从病人处采集血液样本并为其分配一个 ID。

实验室技术人员对样本进行必要的测试并准备测试结果。

由具备相应资格的病理学专家根据测试结果编写测试报告。

很明显,每个流程分别由单独的授权用户执行。未授权的用户则无权执行流 程。例如,实验室研究人员只负责准备试验结果,而无权编写测试报告。

几乎所有的业务自动化应用程序都普遍使用授权的业务流程。通常,每个业 务流程被实现为一个 Java 类,并且需要使用合适的访问控制策略对所有类实施 保护。

企业对企业(Business-to-business)集成

Business-to-business (B2B) 集成指一种常见的场景,其中的两个企业实体 需要彼此公开各自的特定功能。例如,宾馆可能向旅游公司公开其房间预订功能 ,而后者使用该功能为游客预订空闲的房间。作为合作伙伴的旅游公司可能具有 一个特定的订房率。在这个场景中,宾馆的订房系统必须先对旅游公司进行身份 验证,然后才能允许他们访问所选择的类,以便按照特定的订房率进行房间预订 。

时间: 2024-08-21 11:17:29

使用Acegi保护Java应用程序,第3部分: 实现对Java对象的访问控制的相关文章

使用Acegi保护Java应用程序,第5部分: 保护JSF应用程序中的JavaBean

JSF 应用程序中使用的 bean 的可配置安全性 这个 系列 由五部分组成,介绍了 Acegi Security System,并演示了如何 使用 Acegi 保护企业级 Java 应用程序.本文是该系列的最后一部分,将继续 讨论使用 Acegi 保护 JSF 应用程序.在 第 4 部分 中,我介绍了如何在不编 写 Java 代码的情况下使用 Acegi 保护 JSF 页面.我还详细说明了部署 JSF- Acegi 应用程序和用户访问该程序时发生的事件.在本部分中,我将着重介绍在 JSF 应用

使用Acegi保护Java应用程序,第2部分: 使用LDAP目录服务器

使用 ApacheDS 和 Acegi 实现访问控制 了解了 Acegi 安全系统(Acegi Security System)的 基础知识 后,我们 将介绍该系统的更加高级的应用.在本文中,Bilal Siddiqui 向您展示了如何 结合使用 Acegi 和一个 LDAP 目录服务器,实现灵活的具有高性能的 Java 应用程序的安全性.还将了解如何编写访问控制策略并将其存储在 ApacheDS 中,然后配置 Acegi 使其与目录服务器交互,从而实现身份验证和授 权的目的. 这期共分三部分的

使用Java小程序为网页上的照片添加效果

程序|网页 1.准备源文件 选择要放置到网页上的照片,用扫描仪扫描得到照片的图像文件,再用PhotoShop等图像处理软件处理成大小为300×300象素的图像,最后保存为或者使用ACESee等图像查看软件转换为.jpg格式,保存到新建的文件夹photo中(注意千万别使用汉字为这个文件夹命名).现在假设这些照片图像分别为photo1.jpg.photo2.jpg.photo3.jpg.其中photo1.jpg为主要照片,photo2.jpg和photo3.jpg为辅助照片,最好选择不同时期的照片以

Java小程序源文件的组成

Java小程序的源文件有三种,后缀名分别是.java,.class和.jar. 这之中只有.java文件能让你读懂并修改(当然你要懂一点java编程),但是.java文件是不能直接应用的,你必须用编译器把它编译成.class文件才能直接插入网页.事实上,大多数java小程序的作者不愿意把.java文件公开给大家,因此我们能在网上找到的大多是不能修改只能直接利用的.class文件. 而.jar文件,如果你有它,并在<applet>中加上archive="*.jar",则可以在

如何创建虚拟机下的可运行计算密集型的Java应用程序

&http://www.aliyun.com/zixun/aggregation/37954.html">nbsp; 通过Windows Azure,你就可以使用一个虚拟机来处理计算密集型任务,举例来说,一个虚拟机可以处理任务,并交付结果给客户机或移动应用程序.整篇文章阐述的就是让你了解怎样创建一个可运行计算密集型的Java应用程序的同时被另一个Java应用程序所监视的虚拟机.如果你知道如何创建Java控制台应用程序.导入库到你的Java应用程序及生成一个Java存档(JAR).假

求解答:java小程序执行过程

问题描述 求解答:java小程序执行过程 package chap14; import java.util.*; interface Generator { T next(); } class Coffee { private static long counter = 0; private final long id = counter++; public String toString() { return getClass().getSimpleName() + " " + id

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

针对 JavaServer Faces 应用程序的可配置安全性 本 系列 的前 3 部分讨论了如何使用 Acegi Security System 保护 Java 企业应用程序: 第 1 部分 解释了如何使用 Acegi 的内置过滤器实现一个简单的基于 URL 的安全系统. 第 2 部分 展示了如何编写访问控制策略.将其存储在 LDAP 目录服务器中 ,以及配置 Acegi 与 LDAP 服务器交互,从而实现访问控制策略. 第 3 部分 展示了如何在企业应用程序中使用 Acegi 保护对 Jav

使用Acegi保护Java应用程序,第1部分: 架构概览和安全过滤器

使用 Acegi Security System 实现基于 URL 的安全性 Acegi Security System 是一种功能强大并易于使用的替代性方案,使您不 必再为 Java 企业应用程序编写大量的安全代码.虽然它专门针对使用 Spring 框架编写的应用程序,但是任何类型的 Java 应用程序都没有理由不去使用 Acegi.这份共分三部分的系列文章详细介绍了 Acegi,并展示了如何使用它保 护简单的企业应用程序以及更复杂的应用程序. 本系列首先介绍企业应用程序中常见的安全问题,并说

如何编写可通过代理访问因特网上的Web服务器的Java应用程序

本技巧将向您讲述如何编写可通过代理访问因特网上的Web服务器的Java应用程序.在Java应用程序中加入代理支持只需额外编写几行代码,且不依赖任何安全性"漏洞". 几乎所有的公司都十分关注保护自己的内部网络,以防黑客及入窃者.一种常见的安全措施是完全断开与因特网的连接.如果黑客们不能连接到您的任何一台机器,他们就不能非法进入您的系统.这种策略产生的不利副作用是,内部用户无法访问外部的因特网服务器,如Yahoo或JavaWorld.为了解决这一问题,网络管理员通常安装"代理服务