漫谈权限系统之结尾篇.docVIP

  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文档。上传文档
查看更多
HYPERLINK /articles/319311.html 漫谈权限系统之结尾篇(开源产品、个人观点、知识体系) 存档于本人电脑技术文档权限控制漫谈权限系统之结尾篇(开源产品、个人观点、知识体系) 一.? 开源产品 对开源的产品了解不多,所以也只能大概的谈谈,开源的产品中比较知名的有poweracl、acegi,poweracl从名字就可以看出其是基于ACL模型的,不怎么了解所以在此也不去评价了。 Acegi作为JAVA界知名的权限系统,从其文档看来是能满足上述的权限系统的所有需求,其reference文档也对权限系统进行了系统的归纳,非常的不错,建议去看看。 在Acegi中授权模型以及资源权限的校验仍然是基于RBAC模型,在数据权限方面也就是在reference文档中它称为Domain Object Instance的部分,是基于ACL模型的实现,曾经翻阅它此部分的代码,根据代码表现它并不支持Domain Object Instance的权限的继承,并且对于获取的Domain Object Instance也是没法采用分页的方式获取。 看了Acegi的代码觉得其授权应该是比较高效的,但在校验权限上效率恐怕也会比较的低,因为权限的继承是在校验权限通过递规来实现的,虽然引入了缓存机制但仍然无法从根本上解决此问题,而且此缓存的维护也不是一件容易的事。 但Acegi的优点也不可忽略,作为权限系统有一个很容易产生的问题就是对原有系统产生非常大的侵入,并最终导致原有系统与此权限系统形成了非常强的耦合,Acegi在这点上则做的比较好,通过使用Filter、Interceptor以及AOP Weaver技术来尽量保证对原有系统最少的改动。 二.? 个人观点 权限系统作为各种系统中都需要的一个子系统,具有很广的需求面,无论做什么系统,首要重要的仍然是需求,尽管权限系统在各个系统中都有需求,但仍然是不尽相同,所以首先要明确所面对的系统到底是一个什么样的系统,对于权限有什么样的需求,根据需求可以根据相应的实现方案来做出自己的设计。 权限系统主要由授权和校验权限两大部分组成,授权效率和校验权限的效率通常会产生冲突,个人觉得首先要保证校验权限的效率,毕竟系统需要校验权限的地方会非常的多,但授权动作相对来讲触发的会比较的少。 从技术需求上来讲,权限系统对外部系统而言最好做到黑盒的效果,为了减少对外部系统的侵入,在根据业务需求分析的基础上形成权限系统的输入和输出需求,从通常的功能需求角度来大致的阐述: 1.???????? 身份认证 在B/S结构的系统中通常通过增加Filter来达到实现身份认证的功能,这样不会造成对原有系统的改动。 2.???????? 授权模型 授权模型则需外部系统根据此模型建立相应的授权UI以及交互,当然,权限系统本身也可提供默认的实现方式。 3.???????? 资源权限校验 在资源权限的校验上可通过Proxy或Before Interceptor的方式来做到对资源操作的权限控制。 4.???????? 数据权限校验 在很多时候需要区分好数据权限和业务逻辑,不要将业务逻辑形式的数据控制也借用数据权限来实现,数据权限的引入很容易对现有的系统模块造成影响,在此块的设计上要特别注意避免造成对原有系统模块过多的侵入。 5.???????? 权限校验的体现 在权限校验的体现上基本主要是表现在菜单、按钮以及数据的显示上,菜单、按钮通常通过标签的方式来控制,数据的显示控制则需结合数据权限校验部分来实现。 到现在为止也做了几个权限系统了,目前仍然没做出让自己满意的权限系统,此文作为抛砖引玉的文章,也希望大家能够给出自己所做的解决方案。 三.? 涉及的知识体系 根据上面的描述以及结合自己的经验,形成搭建权限系统所需的知识体系: ?

文档评论(0)

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

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

1亿VIP精品文档

相关文档