SSM整合shiro授权管理的一些看法和疑惑??

这几天在学习shiro的东西,发现使用shiro确实可以减轻我们的开发,编写很少的代码就可以实现登入验证和授权。

但是对于shiro授权我觉得在角色权限上有一点局限性,比如:

<property name="filterChainDefinitions">
        <value>
            <!-- 配置登出: 使用 logout 过滤器 -->
            /shiro-logout = logout
            /shiro-* = anon
            /user.jsp = roles[user]
            /admin.jsp = roles[admin]
            /** = authc
        </value>
    </property>

通过上面的配置可以轻松实现指定某个角色可以访问那个资源(URL),也是可以在控制器方法上使用注解进行角色权限的分配。但是如果是这样的话,相当于把角色权限给写死在代码中了,反而使得分配用户角色的权限不灵活了。

我们都知道RBAC权限设计一般至少有四张表(用户表(角色ID) 角色表 权限表 角色权限表 )。但是如果用shiro来做权限管理的话,就省去了表的设计。但是我们在操作权限时,就很受限制了,不灵活。

就比如上面的 访问 /user.jsp需要 用户角色,但是如果想添加一个其它角色也可以访问的话,只能改配置文件,所以这个感觉挺麻烦的。 但是如果我们用RBAC思想通过数据表来控制权限的话,我们只要在管理后台直接对角色权限进行分配,随时可以需改某个角色的权限。

这只是我这几天学shiro对于它的授权管理的一点看法。不知道那个哥哥还有什么不同见解呢?

阅读 490
评论 2019-06-23 提问
    1 个回答

    一般都是直接给URL配置上对应的权限,不要使用角色来配置
    有些项目里面角色是固定的,这种情况给url配置角色比较合理

    评论 赞赏 2019-06-25
      撰写回答

      登录后参与交流、获取后续更新提醒