首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 服务器 > Apache >

Spring Security ,Apache Shiro的对照及数据级权限实现

2012-12-23 
Spring Security ,Apache Shiro的对比及数据级权限实现p styletext-indent: 21.0ptspan langEN-U

Spring Security ,Apache Shiro的对比及数据级权限实现

<p style="text-indent: 21.0pt;"><span lang="EN-US"><a href="http://www.infoq.com/cn/articles/apache-shiro">http://www.infoq.com/cn/articles/apache-shiro</a></span></p>
<p style="text-indent: 21.0pt;"><span lang="EN-US">?</span></p>
<p style="text-indent: 21.0pt;"><span>看上去感觉还不错,至少比</span><span lang="EN-US">Spring Security</span><span>强(连</span><span lang="EN-US">Spring</span><span>的官方都不用</span><span lang="EN-US">Spring Security</span><span>,而用的</span><span lang="EN-US">Shiro</span><span>),但是不知道如何才能实现数据级权限</span><span lang="EN-US">.</span><span>有人说细粒度权限是和业务整合在一起的,无法实现通用。既然都提炼出了细粒度和权限这两个词,说明还是有共通的地方,目前国内关于</span><span lang="EN-US">Shiro</span><span>的资料还很少,有了解的指导一下</span><span lang="EN-US">Shiro</span><span>的学习及细粒度权限实现</span></p>
<p ruleType="department"(部门)
   (二)ruleInfo="age_GTI_40" ruleType="free"(自定义)
在业务层,可以通过SecurityContextHolder取出权限规则,动态生成SQL(有多少个规则,则增加多少个Where条件)。如果用Hibernate,非常比较方便
 
至少,比Spring Security的事后拦截比起来:第一,无需额外的几张表;二,没有太多的Filter,就一个 ,
三、速度和效率肯定比SS强,资源在初始化的时候就加载 四:调用方法时过滤处理的数据更少,已经将不符合条件的过滤掉了 五:便于分页,如果采用SS的话,每页50条,SS在调用方法返回时过滤掉若干条,返回来的页面,每页的结果总是不同

  关键是权限规则的定义和设置
JAVAEYE里面的牛人很多,给点指导意见!
11 楼 eya 2011-05-16   上面说了查询过滤。顺便说一下增删改的过滤方法
增删改时:
可以根据ruleInfo 检验此次操作的实体对象,是否匹配这个规则,运用反射及工具类很容易就实现了。




12 楼 eya 2011-05-16   一般的增删查改,大多数应用都是放在一个通用的基类里面,如果采用这种方法的话,只需定义好权限规则即可,不必满处都是和业务系统耦合相关的代码:如if(xxx>yy)
else ...
当业务规则调整时,只需简单更改Ruleinfo即可
  而不必到处去找到底哪些地方有判断 13 楼 pior 2011-05-17   各系统的业务数据都不一样``通用的框架不太好做的这么细吧```

14 楼 hesy_007 2011-05-17   dancewing 写道
在业务层,可以通过SecurityContextHolder取出权限规则,动态生成SQL(有多少个规则,则增加多少个Where条

不知道有没有考虑过规则很多的情况下,SQL超长的问题? 15 楼 cwx714 2011-05-17   Spring Security已经发展了好几年了,算是Java领域中比较成熟的一个安全框架了。在项目中还是继续用Spring Security,Apache Shiro还需要观望。 16 楼 eya 2011-05-17   eya 写道dancewing 写道
在业务层,可以通过SecurityContextHolder取出权限规则,动态生成SQL(有多少个规则,则增加多少个Where条

不知道有没有考虑过规则很多的情况下,SQL超长的问题?

1,如果是换做你硬编码的话,SQL的长度也少不了多少
2,这样做的好处在于灵活,当你权限规则变了的话,修改一下配置就可以了,如:部门经理审批金额为30万以下的
   你只需要改一下规则, 如果硬编码及团队协作的话。规则改变后,再去搞代码的话,很费劲
3,与应用解耦。权限本来就是一个独立的东西,和业务混合在一起。对开发和维护都不便 17 楼 mmBlue 2011-05-20   目前我项目就在使用Shiro,已经满足了我的需求,主要是参考了自带的DEMO和springside4。

Spring Security在以前项目中用过,一致反映太复杂了,Shiro就足够了,关键是简单。 18 楼 eya 2011-05-20   mmBlue 写道目前我项目就在使用Shiro,已经满足了我的需求,主要是参考了自带的DEMO和springside4。

Spring Security在以前项目中用过,一致反映太复杂了,Shiro就足够了,关键是简单。


有没有 Shiro的详细资料和说明 19 楼 mmBlue 2011-05-24   eya 写道mmBlue 写道目前我项目就在使用Shiro,已经满足了我的需求,主要是参考了自带的DEMO和springside4。

Spring Security在以前项目中用过,一致反映太复杂了,Shiro就足够了,关键是简单。


有没有 Shiro的详细资料和说明


http://apache.etoak.com//shiro/1.1.0/shiro-root-1.1.0-source-release.zip
解压后samples里面。

springside4:
http://springside.googlecode.com/svn/springside4/trunk/examples/mini-web


文档不是很多,除了官方外,网上找到过的:
http://www.ibm.com/developerworks/cn/opensource/os-cn-shiro/ 20 楼 a_alter 2011-05-25   springsecurity 看的有点累啊 因为没有去使用它  现在还停留在 URL 权限拦截 和 RBAC 的权限模型的冲突上 ,Shiro 没听过 可以了解下 21 楼 a_alter 2011-05-25  
至于那些 数据级别的 业务逻辑相关的, 个人觉得还是不纳入权限 概念 ,规则引擎如何 22 楼 alan2012 2012-04-12   对于eya采用规则,我也觉得这是比较灵活的,但现在还些地方不知道如何处理。我认为权限是有很多种类型的,比如功能权限、数据权限、流程节点权限,我想知道配置规则如果与实例应用结合一起,对于功能权限一般只是允许或是禁止操作,对于数据权限则是要重新封装SQL了。

热点排行