Shiro系列(1) - 权限管理的介绍与原理
1. 什么是权限管理
一般来说,只要有用户参与,那么该系统都会需要权限管理,权限管理实现了对用户访问系统 指定功能的限制,按照管理员定义的安全规则或权限策略,限制用户只能访问自己被授权的那些资源路径。
权限管理包括用户认证和授权两部分(俗称登录和鉴权)。也就是说先要进行用户的登录,登录以后会对用户访问的功能模块(即:访问资源的url路径)进行权限验证。
2. 用户认证(用户登录)
身份认证,简单来说就是登录。检验一个用户是否为合法用户的业务处理过程。最常见的方式为系统对用户输入的用户名和密码判断是否匹配数据库中的记录。
除此之外还有指纹认证,一卡通认证,脸部扫描,这些都需要硬件设备,比如指纹采集仪,pose机,刷脸(脸部识别系统/iphoneX)等。
3. 登录认证流程
流程中的出现主要对象:
Subject:主体,大部分情况下就是用户,但也可以是api接口(rest服务,手机端访问等),去访问系统的功能,系统需要对Subject进行身份认证。
Principal:身份信息,一般来说是唯一的,一个主体可以有多个身份,但是都有一个主身份信息(primary principal)。主要体现在账户系统和子账户。
Credential:凭证token,可以是密码 、证书、指纹、人脸等。
总结一句话:主体用户在进行身份认证时需要提供身份信息和凭证信息。简单来说就是登录。
4. 用户授权(验证用户是否拥有访问的权限)
授权,即访问控制,控制用户能否访问哪些资源。在用户进行身份认证后需要分配权限方可访问系统的资源,对于某些资源没有权限是无法访问的
流程中的出现主要对象:
Subject:主体,此时的主体已经经过登录之后认证过了的。
Resource:主体用户所访问的资源或者功能。比如用户要删除一个员工记录,这个员工记录在数据库中的主键pid为1001,那么这个资源就是1001这条在数据库中所对应的记录。在java中就是一个对象。或者查询所有员工的页面,这些员工所在数据库中的数据集也是这个资源resource。
Permission:凭证token,可以是密码 、证书、指纹、人脸等。
总结一句话:[主体用户] 对 [资源] 进行 [增删改查] 的操作
<未完待续...>
具体内容同步更新文章以及视频到公众号,知乎,豆瓣,cnblogs以及新浪微博,以官网itzixi.com为主
Shiro系列(1) - 权限管理的介绍与原理的更多相关文章
- Shiro系列(0) - 权限管理在J2EE企业级开发中的应用与实战
其实也是应大家要求,讲一下权限管理,之前有讲过,但是没有拿出来细讲,这次索性录了视频从头到尾把shiro讲一遍.后续spring security会另外找个时间也讲一下. 主要内容会包括以下 1.了解 ...
- [Django]用户权限学习系列之权限管理界面实现
本系列前三章: http://www.cnblogs.com/CQ-LQJ/p/5604331.htmlPermission权限基本操作指令 http://www.cnblogs.com/CQ-LQJ ...
- Winform开发框架之权限管理系统功能介绍
权限管理系统的重要特性总结: 1) 高度集成的权限系统.独立模块,能快速整合使用.2) 符合权限的国际通用标准,基于RBAC(基于角色的访问控制)的角色权限控制.3) 多数据库架构支持,内置支持Sql ...
- 一步一步Asp.Net MVC系列_权限管理总结(附MVC权限管理系统源码)
在上一节中我们总结了关于权限控制的方式,我们这一节讲解关于权限控制中角色权限的授予处理等等并做本系列的总结. 首先,我们来谈谈权限控制中角色权限的控制,上一节只是针对权限拦截中比较粗的控制,如果我们需 ...
- shiro实现动态权限管理
用到shiro框架实现权限控制时,根据实际要求,权限在数据库增删改后都要把权限过滤链变化实时更新到服务器中. 1.配置文件里配置的filterchains都是静态的,但实际开发中更多的是从数据库中动态 ...
- Shiro系列(2) - 权限模型以及权限分配的两种方式
1. 顶级账户分配权限用户需要被分配相应的权限才可访问相应的资源.权限是对于资源的操作一张许可证.给用户分配资源权限需要将权限的相关信息保存到数据库.这些相关内容包含:用户信息.权限管理.用户分配的权 ...
- linux100day(day7)--用户管理和权限管理简单介绍
系统基础 计算机的三大部件 CPU 内存 IO 总线 一般使用system call和api来调用硬件 一些基础命令, pwd 查看当前路径 cal 计算器 clock 时钟 hwclock 显示与设 ...
- 一步一步Asp.Net MVC系列_权限管理设计
http://www.cnblogs.com/mysweet/archive/2012/07/26/2610793.html
- OA 办公自动化系统:权限管理模块的实现原理思路
OA系统分有许多的模块,如系统管理模块.等一些比较高级的业务操作.此类业务是不允许让普通员工来操作的,思路如下: 给系统添加角色表,每个用户对应一个角色,每个角色可以拥有多个权限, 如下:创建权限表( ...
随机推荐
- python之模块contextlib 加强with语句而存在
# -*- coding: utf-8 -*- #python 27 #xiaodeng #python之模块contextlib,为加强with语句而存在 #特别注意:python3和python2 ...
- UML - EA 序列图
序列图中的 Fragment 的类型(Loop.Opt.Par和Alt) (还有: ) 序列图主要用于展示对象之间交互的顺序. 序列图将交互关系表示为一个二维图.纵向是时间轴,时间沿竖线向下延伸.横向 ...
- HDU 1069 Monkey and Banana(最大的单调递减序列啊 dp)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1069 Problem Description A group of researchers are d ...
- ios中UIWebview和asiHttprequest的用法
原文地址为:http://www.cnblogs.com/pengyingh/articles/2343062.htmlasiHttprequest的用法 它对Get请求的响应数据进行缓存(被缓存的数 ...
- Spring的缺点有哪些--Ext扩展
http://www.iteye.com/topic/1131284 1.JavaTear2014 -- 发表时间:2013-07-17 最后修改:2013-07-17 Spring应用比较 ...
- js精确计算(js浮点数精度问题)
转自:http://talentluke.iteye.com/blog/1767138 大多数语言在处理浮点数的时候都会遇到精度问题,但是在JS里似乎特别严重,来看一个例子 alert(45.6*13 ...
- iOS绘图UIBezierPath 和 Core Graphics框架
前言 iOS系统本身提供了两套绘图的框架,即UIBezierPath 和 Core Graphics.而前者所属UIKit,其实是对Core Graphics框架关于path的进一步封装,所以使用起来 ...
- 用UltraEdit判断打开文件的编码类型 用UltraEdit或notepad记事本查看文件编码格式 用UltraEdit查看当前文件编码
用UltraEdit查看当前文件编码 想判断文件的编码类型? 用强大的UltraEdit-32软件: UltraEdit-32的状态栏可以显示文件的编码类型,详细情况如下: ANSI/ANSCI--- ...
- webpack window 处理图片和其他静态文件
安装url-loader npm install url-loader --save-dev 配置config文件 { test: /\.(png|jpg)$/, load ...
- 如何在Android Studio项目中导入开源库?
前两天,谷歌发布了Android Studio 1.0的正式版,也有更多的人开始迁移到Android Studio进行开发.然而,网上很多的开源库,控件等还是以前的基于Eclipse进行开发,很多人不 ...