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