shiro采坑指南—基础概念与实战
说明
其他资料:
基础概念
Authenticate/Authentication(认证)
认证是指检查用户身份合法性,通过校验用户输入的密码是否正确,判断用户是否为本人。
有几个概念需要理解:
Principals (主体标识)
任何可以唯一地确定一个用户的属性都可以充当principal,例如:邮箱、手机号、用户ID等,这些都是与用户一一对应的,可以唯一地确定一个用户。credentials (主体凭证)
credentials是能确认用户身份的东西,可以是证书(Certificate),也可以是密码(password)。token(令牌)
这里的token和api里的token有一点儿差别,这里token是principal和credential的结合体或者说容器。这里先讲一部分,剩下的放到"Subject"讲解。
Authorize/Authorization(授权)
shiro中的“授权”,更贴切说法是“鉴权”,即判定用户是否拥有某些权限,至于拥有该权限在业务上有何意义,则是由业务本身来决定。
关于“授权”,shiro引入了两种概念:
Role (角色)
角色用来区分用户的类别。角色与用户间是多对多的关系,一个用户可以拥有多个角色,如Bob可以同时是admin(管理员)和user(普通用户)。Permission (权限)
权限是对角色的具体的描述,用于说明角色在业务上的特殊性。如admin(管理员)可以拥有user:delete(删除用户)、user:modify(修改用户信息)等的权限。同样的,角色与权限是多对多的数量关系。
shiro权限可以分级,使用":"分割,如delete、user:delete、user:info:delete。可以使用"*"作通配符,例如可以给admin赋予操作用户的所有权限,可以配置为"user:*",这样在授权时,isPermitted("user:123")、isPermitted("user:123:abc")都是返回true;如果配置为"*shiro采坑指南—基础概念与实战的更多相关文章
- 【shiro】一、基础概念
		
来源:http://blog.csdn.net/swingpyzf/article/details/46342023/ &&&& http://jinnianshilo ...
 - 采坑指南——k8s域名解析coredns问题排查过程
		
正文 前几天,在ucloud上搭建的k8s集群(搭建教程后续会发出).今天发现域名解析不了. 组件版本:k8s 1.15.0,coredns:1.3.1 过程是这样的: 首先用以下yaml文件创建了一 ...
 - 小程序:web-view采坑指南
		
最近负责开发的[广州医保查询]小程序已经发布上线,其中使用web-view组件完成的[在线绑定社保卡]核心流程,遇到了一些坑,现总结如下: 首先,让我们一起看看什么是web-view ? 小程序api ...
 - rabbitmq在ios中实战采坑
		
1. rabbitmq在ios中实战采坑 1.1. 问题 ios使用rabbitmq连接,没过多久就断开,并报错.且用android做相同的步骤并不会报错,错误如下 Received connecti ...
 - 『深度应用』NLP机器翻译深度学习实战课程·零(基础概念)
		
0.前言 深度学习用的有一年多了,最近开始NLP自然处理方面的研发.刚好趁着这个机会写一系列NLP机器翻译深度学习实战课程. 本系列课程将从原理讲解与数据处理深入到如何动手实践与应用部署,将包括以下内 ...
 - Rust入坑指南:核心概念
		
如果说前面的坑我们一直在用小铲子挖的话,那么今天的坑就是用挖掘机挖的. 今天要介绍的是Rust的一个核心概念:Ownership.全文将分为什么是Ownership以及Ownership的传递类型两部 ...
 - Spring WebSocket踩坑指南
		
Spring WebSocket踩坑指南 本次公司项目中需要在后台与安卓App间建立一个长连接,这里采用了Spring的WebSocket,协议为Stomp. 关于Stomp协议这里就不多介绍了,网上 ...
 - C# -- HttpWebRequest 和 HttpWebResponse 的使用  C#编写扫雷游戏  使用IIS调试ASP.NET网站程序  WCF入门教程  ASP.Net Core开发(踩坑)指南   ASP.Net Core Razor+AdminLTE 小试牛刀  webservice创建、部署和调用  .net接收post请求并把数据转为字典格式
		
C# -- HttpWebRequest 和 HttpWebResponse 的使用 C# -- HttpWebRequest 和 HttpWebResponse 的使用 结合使用HttpWebReq ...
 - Rust入坑指南:鳞次栉比
		
很久没有挖Rust的坑啦,今天来挖一些排列整齐的坑.没错,就是要介绍一些集合类型的数据类型."鳞次栉比"这个标题是不是显得很有文化? 在Rust入坑指南:常规套路一文中我们已经介绍 ...
 
随机推荐
- X-WAF 安装配置指南
			
X-WAF 是一款方便易用的云WAF,使用反向代理的方式介入Web服务器和访问者之间,不需要像 modSecurity 和 Naxsin 那样作为nginx的模块,需要进行编译安装 X-WAF使用 O ...
 - Laravel 5.6 安装 guzzlehttp
			
环境:Laravel 5.6 安装 composer require guzzlehttp/guzzle 在vendor文件夹下,vendor\guzzlehttp\guzzle 引入 use Gu ...
 - Tenka1 Programmer Beginner Contest D IntegerotS(补)
			
当时没做出来,官方题解没看懂,就看别人提交的代码,刚对着别人代码调了几组数据,才发现,思路差不多,不过,原来是这样实现啊,果然我还是很菜 思路:题目要求是选取的这些数字全部进行OR运算,结果<= ...
 - Codeforces Round #168 (Div. 1 + Div. 2)
			
A. Lights Out 模拟. B. Convex Shape 考虑每个黑色格子作为起点,拐弯次数为0的格子构成十字形,拐弯1次的则是从这些格子出发直走达到的点,显然需要遍历到所有黑色黑色格子. ...
 - Hammersley-Clifford定理证明
			
Proof of Hammersley-Clifford TheoremProof of Hammersley-Clifford Theorem依赖知识定义1定义2证明过程反向证明(吉布斯分布=> ...
 - vue v-for循环使用
			
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
 - java UDP传输
			
①:只要是网络传输,必须有socket . ②:数据一定要封装到数据包中,数据包中包括目的地址.端口.数据等信息. 直接操作udp不可能,对于java语言应该将udp封装成对象,易于我们的使用,这个对 ...
 - Codeforces Round #564 (Div. 2) D. Nauuo and Circle(树形DP)
			
D. Nauuo and Circle •参考资料 [1]:https://www.cnblogs.com/wyxdrqc/p/10990378.html •题意 给出你一个包含 n 个点的树,这 n ...
 - H3C 链路聚合分类
 - Linux 内核存取 I/O 和内存空间
			
一个 PCI 设备实现直至 6 个 I/O 地址区. 每个区由要么内存要么 I/O 区组成. 大部分 设备实现它们的 I/O 寄存器在内存区中, 因为通常它是一个完善的方法(如同在" I/O ...
 
- 【shiro】一、基础概念