《spring+acegi+中文手册》.pdfVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《spring+acegi+中文手册》.pdf

本章内容: 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]来保护应用 系统的各种手段。 11.1 Acegi安全系统介绍 Acegi是一个能够为基于Spring的应用系统提供描述性安全保护的安全框架。它提供了一组 可以在Spring应用上下文中配置的Bean,充分利用了Spring对依赖注入和面向切面编程的 支持。 当保护Web应用系统时,Acegi使用Servlet过滤器来拦截Servlet请求,以实施身份认证并 强制安全性。并且,在第11.4.1节你将会看到,Acegi采取了一种独特的机制来声明Servlet 过滤器,使你可以使用Spring IoC注入它所依赖的其他对象。 Acegi也能够通过保护方法调用在更底层的级别上强制安全性。使用SpringAOP,Acegi代理 对象,将“切面”应用于对象,以确保用户只有在拥有恰当授权时才能调用受保护的方法。 无论你正在保护一个Web应用程序还是需要方法调用级别的安全性,Acegi都是使用如图11.1 所示的4个主要组件来实施安全性。 图11.1 Acegi安全的基本组件 通过本章,我们会揭示每一个组件的细节。但在开始考察Acegi安全机制的本质之前,首先 让我们居高临下地考察一下每个组件扮演的角色。 11.1.1 安全拦截器 为了释放锁舌并打开门,你必须先把钥匙插到锁孔中,并恰当地拨动锁的制栓。如果钥匙和 锁不匹配,就无法拨动制栓并释放锁舌。但如果你有正确的钥匙,所有的制栓就会接受这把 钥匙,锁舌就会释放,从而允许你把门打开。 在Acegi中,可以认为安全拦截器像一把锁的锁舌,能够阻止对应用系统中受保护资源的访 问。为了释放“锁舌”并通过安全拦截器,你必须向系统提供“钥匙”(通常是一对用户名和 密码)。“钥匙”会尝试拨开安全拦截器的“制栓”,从而允许你访问受保护的资源。 11.1.2 认证管理器 第一道必须打开的安全拦截器的制栓是认证管理器。认证管理器负责决定你是谁。它是通过 考虑你的主体(通常是一个用户名)和你的凭证(通常是一个密码)做到这点的。 你的主体定义了你是谁,你的凭证是确认你身份的证据。如果你的凭证足以使认证管理器相 信你的主体可以标识你的身份,Acegi就能知道它在和谁打交道。 11.1.3 访问决策管理器 一旦Acegi决定了你是谁,它就必须决定你是否拥有访问受保护的资源的恰当授权。访问决 策管理器是Acegi锁中第二道必须被打开的制栓。访问决策管理器进行授权,通过考虑你的 身份认证信息和与受保护资源关联的安全属性决定是否让你进入。 例如,安全规则也许规定只有主管才允许访问某个受保护资源。如果你被授予主管权限,则 第二道也是最后一道制栓——访问决策管理器——会被打开,并且安全拦截器会给你让路, 让你取得受保护资源的访问权

文档评论(0)

ycwf + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档