spring+acegi+中文手册.doc
文本预览下载声明
本章内容:
n? Acegi安全系
n? 使用ServletWeb应用系统
n? 基于数据LDAP进行身份认证
n? 透明地 ?
?
?
你是否曾注意到在Seinfeld中,Krammer常常到Jerry的房Friends中,各Ross突然Chandler的旅Chandler和Ross的妹妹的私情。
在20世50年代Leave It to Beaver
类似地,在软件系统中,允许任何人可以访问敏感或者私密的信息是不明智的。应用系统必须通过质询来验证用户身份,据此决定是允许还是拒绝他访问受限制的信息。无论你是通过用户名/密
我“切面”是将安全有
如果你想到 “面向切面”技Acegi安全系Spring AOP和Servlet[1]来保护应用系统的各种手段。
11.1? Acegi安全系
Acegi是一个能Spring的Spring应用上下文中配置的Bean,充分利用了Spring
当保Web应用系统时,Acegi使用ServletServlet请求,以实施身份认证并强制安全性。并且,在第11.4.1节你将会看到,Acegi采取了一Servlet过滤器,使你可以使用Spring IoC注入它所依
Acegi也能Spring AOP,Acegi代理象,将“切面”
无Web应用程序还是需要方法调用级别的安全性,Acegi都是使用如11.1所示的4个主要
图11.1? Acegi安全的基本
通Acegi安全机制的本先。
11.1.1? 安全
为了释放锁舌并打开门,你必须先把钥匙插到锁孔中,并恰当地拨动锁的制栓。如果钥匙和锁不匹配,就无法拨动制栓并释放锁舌。但如果你有正确的钥匙,所有的制栓就会接受这把钥匙,锁舌就会释放,从而允许你把门打开。
在Acegi中,可以受保“锁舌”并通“钥匙”(通常是一“钥匙”会“制栓”,从而允。
11.1.2?
第一道必。主体(通常是一个用凭(通常是一个密
你的主体定Acegi就能知道它在和。
11.1.3?
一旦Acegi决定了你是是Acegi
例如,安全——访问决策管理器——会被打。
11.1.4? 运行身份管理器
当你通
即使你已Web页面,但用于创建该页面的对象也许和页面本身有不同的安全需求。一个运行身份管理器可以用另一个身份替换你的身份,从而允许你访问应用系统内部更深处的受保护对象。
运行身份管理器的用Acegi保
现在,你已经看到了Acegi安全性的全貌,Acegi安全系。
11.2 ?管理身份
决定是否允
在Acegi中,是由net.sf.acegisecurity.AuthenticationManager定
? public interface AuthenticationManager {
??? public Authentication authenticate(Authentication authentication)
???????? throws AuthenticationException;
? }
?
认证管理器的authenticate()方法需要一个net.sf.acegisecurity.Authenticationauthenticate()方法返回一个完整的AuthenticationAuthenticationException。
正如你所AuthenticationManager接口非常AuthenticationManager。但是Acegi提供了ProviderManager,作AuthenticationManager的一个适用于大多数情形的ProviderManager。
11.2.1 ?配置ProviderManager
ProviderManager是11.2所示。
图11.2? ProviderManager将身份
ProviderManager的思路是使你能?
你可以在Spring配置文件中按如下方式配置一个ProviderManager:
?
? bean id=authenticationManager
?????? class=viders.ProviderManager
??? property name=providers
????? list
??????? ref bean=daoAuthenticationProvider/
??????? ref bean=passwordDaoProvider/
????? /list
??? /property
? /bean
?
通providers属性可以ProviderManager提供一个在这种情况下,如果一个认证提供者验证身份失败,可以尝试另一个认证提供者。一个认证提供者是由vider.AuthenticationProvider接口定Spring提供了若干个Authent
显示全部