文档章节

Shiro权限设计基础-权限和验证

boonya
 boonya
发布于 2014/11/20 13:15
字数 1217
阅读 1061
收藏 4

安全实体就是被权限系统保护的对象,比如工资数据。

权限就是需要被校验的权限对象,比如查看、修改等。

 

n安全实体和权限通常要一起描述才有意义:

         比如有这么个描述:“现在要检测登录人员对工资数据是否有查看的权限”, “工资数据”这个安全实体和“查看”这个权限一定要一起描述。如果只出现安全实体描述,那就变成这样:“现在要检测登录人员对工资数据”,对工资数据干什 么呀,没有后半截,一看就知道不完整;当然只有权限描述也不行,那就变成:“现在要检测登录人员是否有查看的权限”,对谁的查看权限啊,也不完整。所以安 全实体和权限通常要一起描述。

 

n了解了上面两个名词,来看看什么是分配权限和验证权限:

       所谓分配权限是指:把对某些安全实体的某些权限分配给某些人员的过程;而验证权限是指:判断某个人员或程序对某个安全实体是否拥有某个或某些权限的过程。

       也就是说,分配权限过程即是权限的分配过程,而验证权限过程则是权限的匹配过程。在目前应用系统的开发中,多数是利用数据库来存放授权过程产生的数据,也 就是说:分配权限是向数据库里面添加数据、或是维护数据的过程,而验证权限过程就变成了从数据库中获取相应数据进行匹配的过程了。

 

n再来介绍一下验证权限涉及到的两个名词:


1、n权限的继承性

        如果多个安全实体存在包含关系,而某个安全实体没有相应的权限限制,那么它会继承包含它的安全实体的相应权限。 比如:某个大楼和楼内的房间都是安全实体,很明显大楼这个安全实体会包含楼内的房间这些安全实体,可以认为大楼是楼内房间的父级实体。现在来考虑一个具体 的权限——进入某个房间的权限。如果这个房间没有门,也就是谁都可以进入,相当于这个房间对应的安全实体,没有进入房间的权限限制,那么是不是说所有的人 都可以进入这个房间呢?当然不是,某人能进入这个房间的前提是:这个人要有权限进入这个大楼,也就是说,这个时候房间这个安全实体,它本身没有进入权限的 限制,但是它会继承父级安全实体的进入权限。

2、n权限的最近匹配原则

       如果多个安全实体存在包含关系,而某个安全实体没有相应的权限限制,那么它会向上寻找并匹配相应权限限制,直到找到一个离这 个安全实体最近的拥有相应权限限制的安全实体为止。如果把整个层次结构都寻找完了都没有匹配到相应权限限制的话,那就说明所有人对这个安全实体都拥有这个 相应的权限限制。  继续上面权限继承性的例子,如果现在这个大楼是坐落在某个机关大院内,这就演变成了,要进入某个房间,首先要有进入大楼的权限,要进入大楼又需要有能进入机关大院的权限。

       所谓最近匹配原则就是,如果某个房间没有门,也就意味着这个房间没有进入的权限限制,那么它就会向上继续寻找并匹配,看看大楼有没有进入的权限限制,如果 有就使用这个权限限制,终止寻找;如果没有,继续向上寻找,直到找到一个匹配的为止。如果最后大院也没有进入的权限限制,那就变成所有人都可以进入到这个 房间里面来了。 

私塾在线原创,转载请注明http://sishuok.com/forum/blogPost/list/0/7450.html


本文转载自:http://sishuok.com/forum/blogPost/list/7450.html;jsessionid=C80F0E848FB96291C0926420CB38C104

共有 人打赏支持
boonya
粉丝 73
博文 214
码字总数 43922
作品 0
成都
高级程序员
私信 提问
springboot(十四):springboot整合shiro-登录认证和权限管理

这篇文章我们来学习如何使用Spring Boot集成Apache Shiro。安全应该是互联网公司的一道生命线,几乎任何的公司都会涉及到这方面的需求。在Java领域一般有Spring Security、Apache Shiro等安全...

ityouknow
2017/06/28
0
0
springboot(十四):springboot整合shiro-登录认证和权限管理

这篇文章我们来学习如何使用Spring Boot集成Apache Shiro。安全应该是互联网公司的一道生命线,几乎任何的公司都会涉及到这方面的需求。在Java领域一般有Spring Security、Apache Shiro等安全...

纯洁的虫纸
2017/06/28
0
0
转:springboot整合shiro-登录认证和权限管理

这篇文章我们来学习如何使用spring Boot集成Apache Shiro。安全应该是互联网公司的一道生命线,几乎任何的公司都会涉及到这方面的需求。在Java领域一般有Spring Security、Apache Shiro等安全...

芝麻绿豆
2017/07/25
524
0
JeeWeb敏捷开发平台/jeeweb

JeeWeb敏捷开发平台 QQ交流群: 570062301 官方网站: https://www.jeeweb.cn 官方论坛: http://bbs.jeeweb.cn 项目演示: https://demo.jeeweb.cn 简介 JeeWeb是一款基于SpringMVC+Spring+...

JeeWeb敏捷开发平台
2017/07/06
0
0
JeeWeb敏捷开发平台/jeeweb-mybatis

JeeWeb敏捷开发平台(Mybatis) QQ交流群: 570062301(满)、522959928 官方网站: https://www.jeeweb.cn 文档地址: https://doc.jeeweb.cn 项目演示: https://mybatis.jeeweb.cn 简介 JeeW...

JeeWeb敏捷开发平台
2017/07/24
0
0

没有更多内容

加载失败,请刷新页面

加载更多

升压变换器 Boost

工作特点 输入输出极性相同。 开关管 MOS 和负载构成并联,在MOS 导通时,电流通过 L 滤波,电源对 L 充电。 当 MOS 断开时,L 向负载及电源放电,输出电压将是 Ui+U L ,达到升压的目的。 ...

colinux
30分钟前
2
0
OSChina 周一乱弹 —— 你狗命在我手上

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 小小编辑:推荐歌曲,《I.W.A.B.N》- Lil Ghost 《I.W.A.B.N》- Lil Ghost 手机党少年们想听歌,请使劲儿戳(这里) 几天没见, 大王(@罗马的...

小小编辑
32分钟前
226
7
轻量级 memcached缓存代理 twemproxy实践

本文内容脑图如下: 文章共 533字,阅读大约需要 2分钟 ! 概 述 twemproxy(nutcracker) 是 Twitter开源的轻量级 memcached / redis 代理服务器,本质就是一个集群管理工具,主要用来弥补 ...

CodeSheep
51分钟前
9
0
Apache日志不记录访问静态文件,访问日志切割,静态元素过期时间设置

Apache配置不记录访问静态文件的日志 网站大多元素为静态文件,如图片、css、js等,这些元素可以不用记录 vhost原始配置 <VirtualHost *:80> ServerAdmin test@163.com DocumentRoo...

野雪球
今天
3
0
聊聊storm的ICommitterTridentSpout

序 本文主要研究一下storm的ICommitterTridentSpout ICommitterTridentSpout storm-core-1.2.2-sources.jar!/org/apache/storm/trident/spout/ICommitterTridentSpout.java public interface......

go4it
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部