Shiro知识初探(更新中)

Shiro 是当下常见的安全框架,主要用于用户验证和授权操作。

RBAC 是当下权限系统的设计基础,同时有两种解释:
一: Role-Based Access Control,基于角色的访问控制
即,你要能够删除产品,那么当前用户就必须拥有产品经理这个角色
二:Resource-Based Access Control,基于资源的访问控制
即,你要能够删除产品,那么当前用户就必须拥有删除产品这样的权限

基于 RBAC概念, 就会存在3 张基础表: 用户,角色,权限, 以及 2 张中间表来建立 用户与角色的多对多关系,角色与权限的多对多关系。 用户与权限之间也是多对多关系,但是是通过 角色间接建立的。

注: 一个用户可以有多种角色,一个角色也可以赋予多个用户。一个角色可以包含多种权限,一种权限也可以赋予多个角色。

在 Shiro 中存在 Realm 这么个概念, 那么 Realm 在 Shiro里到底扮演什么角色呢?
当应用程序向 Shiro 提供了 账号和密码之后, Shiro 就会问 Realm 这个账号密码是否对, 如果对的话,授权其所对应的用户拥有哪些角色,哪些权限。
Realm 得到了 Shiro 给的用户和密码后,去找数据库,查询信息该用户对应的角色和权限。
Realm 就是干这个用的,它才是真正进行用户认证和授权的关键地方。

原文地址:https://www.cnblogs.com/wueryuan/p/12373238.html