发表于: 2017-06-24 22:06:26

1 1018


今天完成的事情:

1、今天学习了 shiro 的自定义权限管理。

shiro有针对字符串判断的方式来管理权限,然而对字符串的判断过于耗费性能。


先把shiro的三大核心再复习一遍:

这里我参考了以下这篇教程

http://blog.csdn.net/u012702547/article/details/63268910

Subject:

在shiro框架中,任意一个和程序交互的主体都是一个subject,其包括了但不限于用户,所有的subject都会绑定到 securityManager 上,故而所有交由 subject 处理的操作最终都会委托给securityManager。


SecurityManager 

从字面上理解为是一个安全管理器的意思,所有的subject都由securityManager管理。它是shiro的核心,有点类似于 spring 框架中的 dispatcherServlet。


Realm

Shiro 在运行的过程中,从realm中获取安全数据,比如用户的权限,角色等。每当securityManager 要验证用户身份的时候,它就会从realm中获取相应的数据进行比对,这个有点类似于DAO,由它提供数据源。


梳理一下shiro应用的流程:

代码通过subject来进行认证和授权等操作,而subject又将此操作委托给securityManager。

程序员将要验证的数据源注入到realm中,securityManager在realm中查询数据进行验证。


以上是三个基本概念,需要做权限管理的话,还需要了解几个概念:

Authorizer,其在shiro中扮演的职责是授权,即访问控制,authorizer给程序员提供了进行角色、权限判断时需要的接口等。securityManager 继承了authorizer。


PermissionResolver 用于解析权限字符串到permission实例。

RolePermissionResolver 则用于根据角色解析相应的权限集合。


在linux中,1,2,4三个数字分别表示一个文件的可读可写执行权限,若想要文件获取多个权限,只要将相应的数字相加就可以。







明天计划的事情:

 
遇到的问题:


收获:


返回列表 返回列表
评论

    分享到