1 / 73
文档名称:

spring+acegi+中文手册.doc

格式:doc   页数:73页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

spring+acegi+中文手册.doc

上传人:经管专家 2011/12/28 文件大小:0 KB

下载得到文件列表

spring+acegi+中文手册.doc

文档介绍

文档介绍:本章内容:
n  Acegi安全系统介绍
n  使用Servlet过滤器保护Web应用系统
n  基于数据库或LDAP进行身份认证
n  透明地对方法调用进行保护
 
 
 
你是否曾注意到在电视连续剧中大多数人是不锁门的?这是司空见惯的。在情景喜剧Seinfeld中,Krammer常常到Jerry的房间里自己从冰箱里拿东西吃。在Friends中,各种各样的剧中人经常不敲门就不假思索地进入别人的房间。甚至有一次在伦敦,Ross突然进入Chandler的旅馆房间,差点儿撞见Chandler和Ross的妹妹的私情。
在20世纪50年代Leave It to Beaver热播的时代,并不值得为人们不锁门这一现象大惊小怪。但在如今这个隐私和安全极受重视的时代,看到电视剧中的角色允许他人大摇大摆地进入自己的家中或房间中实在让人觉得难以置信。
类似地,在软件系统中,允许任何人可以访问敏感或者私密的信息是不明智的。应用系统必须通过质询来验证用户身份,据此决定是允许还是拒绝他访问受限制的信息。无论你是通过用户名/密码来保护一个电子邮件账号,还是基于交易个人身份号码来保护一个佣金账户,安全性都是大多数应用系统的一个重要切面。
我们有意选择“切面”这个词来描述应用系统的安全性。安全性是超越应用系统功能特性的一个关注点。应用系统的绝大部分不应该亲自参与到与安全相关的处理中。尽管你能够把与安全相关的处理直接编码到应用系统中(这种情况并不少见),但更好的做法还是将安全有关的关注点与应用系统的关注点分开。
如果你想到这听上去好像安全性是通过“面向切面”技术实现的,那你猜对了。在本章中,我们将向你介绍Acegi安全系统,并探讨使用Spring AOP和Servlet过滤器[1]来保护应用系统的各种手段。
  Acegi安全系统介绍
Acegi是一个能够为基于Spring的应用系统提供描述性安全保护的安全框架。它提供了一组可以在Spring应用上下文中配置的Bean,充分利用了Spring对依赖注入和面向切面编程的支持。
当保护Web应用系统时,Acegi使用Servlet过滤器来拦截Servlet请求,以实施身份认证并强制安全性。并且,,Acegi采取了一种独特的机制来声明Servlet过滤器,使你可以使用Spring IoC注入它所依赖的其他对象。
Acegi也能够通过保护方法调用在更底层的级别上强制安全性。使用Spring AOP,Acegi代理对象,将“切面”应用于对象,以确保用户只有在拥有恰当授权时才能调用受保护的方法。
无论你正在保护一个Web应用程序还是需要方法调用级别的安全性,。
  Acegi安全的基本组件
通过本章,我们会揭示每一个组件的细节。但在开始考察Acegi安全机制的本质之前,首先让我们居高临下地考察一下每个组件扮演的角色。
  安全***
为了释放锁舌并打开门,你必须先把钥匙插到锁孔中,并恰当地拨动锁的制栓。如果钥匙和锁不匹配,就无法拨动制栓并释放锁舌。但如果你有正确的钥匙,所有的制栓就会接受这把钥匙,锁舌就会释放,从而允许你把门打开。
在Acegi中,可以认为安全***像一把锁的锁舌,能够阻止对应用系统中受保护资源的访问。为了释放“锁舌”并通过安全***,你必须向系统提供“钥匙”(通常是一对用户名和密码)。“钥匙”会尝试拨开安全***的“制栓”,从而允许你访问受保护的资源。
  认证管理器
第一道必须打开的安全***的制栓是认证管理器。认证管理器负责决定你是谁。它是通过考虑你的主体(通常是一个用户名)和你的凭证(通常是一个密码)做到这点的。
你的主体定义了你是谁,你的凭证是确认你身份的证据。如果你的凭证足以使认证管理器相信你的主体可以标识你的身份,Acegi就能知道它在和谁打交道。
  访问决策管理器
一旦Acegi决定了你是谁,它就必须决定你是否拥有访问受保护的资源的恰当授权。访问决策管理器是Acegi锁中第二道必须被打开的制栓。访问决策管理器进行授权,通过考虑你的身份认证信息和与受保护资源关联的安全属性决定是否让你进入。
例如,安全规则也许规定只有主管才允许访问某个受保护资源。如果你被授予主管权限,则第二道也是最后一道制栓——访问决策管理器——会被打开,并且安全***会给你让路,让你取得受保护资源的访问权。
  运行身份管理器
当你通过认证管理器和访问决策管理器,安全***会被开启,门已经可以被打开。但在你转动门把手进入之前,安全***也许还有一件事要做。
即使你已经通过身份认证并且已经获得了访问被保护资源的授