Acegi是一个能够为基于Spring的应用系统提供描述性安全保护的安全框架。它提供了一组可以在Spring应用上下文中配置的Bean,充分利用了Spring对依赖注入和面向切面编程的支持。 www.yoy1.com+s,Q-_+t+w v
$D&c-z.d'M'@绯闻,偷拍,写真,曝料,视频,八卦当保护Web应用系统时,Acegi使用Servlet过滤器来拦截Servlet请求,以实施身份认证并强制安全性。并且,在第11.4.1节你将会看到,Acegi采取了一种独特的机制来声明Servlet过滤器,使你可以使用Spring IoC注入它所依赖的其他对象。
'L%/$z)a*T1N9[%s-d)S悠忆社区集中,互联网资讯,新闻,图片,视频,综合性社区.Acegi也能够通过保护方法调用在更底层的级别上强制安全性。使用Spring AOP,Acegi代理对象,将“切面”应用于对象,以确保用户只有在拥有恰当授权时才能调用受保护的方法。 1]-Y%|#S*V.X.k(P
绯闻,偷拍,写真,曝料,视频,八卦2L-F;J*T-h&L0H*b-j
无论你正在保护一个Web应用程序还是需要方法调用级别的安全性,Acegi都是使用如图11.1所示的4个主要组件来实施安全性。 绯闻,偷拍,写真,曝料,视频,八卦%{8U#@-D/@
悠忆社区+t%t-I1x9@
11.1.1 安全拦截器
;z;U-T8i3I)v)M悠忆社区为了释放锁舌并打开门,你必须先把钥匙插到锁孔中,并恰当地拨动锁的制栓。如果钥匙和锁不匹配,就无法拨动制栓并释放锁舌。但如果你有正确的钥匙,所有的制栓就会接受这把钥匙,锁舌就会释放,从而允许你把门打开。
7Y;u6V6O(l/R- 触摸网络快感在Acegi中,可以认为安全拦截器像一把锁的锁舌,能够阻止对应用系统中受保护资源的访问。为了释放“锁舌”并通过安全拦截器,你必须向系统提供“钥匙”(通常是一对用户名和密码)。“钥匙”会尝试拨开安全拦截器的“制栓”,从而允许你访问受保护的资源。
11.1.2 认证管理器
5B5R.v.b)Q-L/F(Xwww.yoy1.com第一道必须打开的安全拦截器的制栓是认证管理器。认证管理器负责决定你是谁。它是通过考虑你的主体(通常是一个用户名)和你的凭证(通常是一个密码)做到这点的。绯闻,偷拍,写真,曝料,视频,八卦9}7`'Q B;^*[$p d
你的主体定义了你是谁,你的凭证是确认你身份的证据。如果你的凭证足以使认证管理器相信你的主体可以标识你的身份,Acegi就能知道它在和谁打交道。
11.1.3 访问决策管理器悠忆社区集中,互联网资讯,新闻,图片,视频,综合性社区.)L-`8H8r#b:}"n:G
一旦Acegi决定了你是谁,它就必须决定你是否拥有访问受保护的资源的恰当授权。访问决策管理器是Acegi锁中第二道必须被打开的制栓。访问决策管理器进行授权,通过考虑你的身份认证信息和与受保护资源关联的安全属性决定是否让你进入。悠忆社区集中,互联网资讯,新闻,图片,视频,综合性社区.,U:z.y'w,X
例如,安全规则也许规定只有主管才允许访问某个受保护资源。如果你被授予主管权限,则第二道也是最后一道制栓——访问决策管理器——会被打开,并且安全拦截器会给你让路,让你取得受保护资源的访问权。
11.1.4 运行身份管理器
#`;Z,~4x7Z(}悠忆社区当你通过认证管理器和访问决策管理器,安全拦截器会被开启,门已经可以被打开。但在你转动门把手进入之前,安全拦截器也许还有一件事要做。
悠忆社区8z)i2T#g(i)r
即使你已经通过身份认证并且已经获得了访问被保护资源的授权,门后也许还有更多的安全限制在等着你。
比如,你也许已被授权访问查看某个Web页面,但用于创建该页面的对象也许和页面本身有不同的安全需求。
一个运行身份管理器可以用另一个身份替换你的身份,从而允许你访问应用系统内部更深处的受保护对象。www.yoy1.com*N!K*j,k*/6q2@3R
运行身份管理器的用处在大多数应用系统中是有限的。幸运的是,当你使用Acegi保护应用系统时可以不必使用甚至不必完全理解运行身份管理器。因此,我们认为运行身份管理器是一个高级课题,在下文中不再深入地探讨它。
,y2i5E2N;p- 触摸网络快感现在,你已经看到了Acegi安全性的全貌,让我们回过头来看一下如何配置Acegi安全系统的每一个部分,首先由认证管理器开始。