Shiro权限管理详解

  • 1. 权限管理
    • 1.1什么是权限管理
    • 1.2用户身份认证
      • 1.2.1 概念
      • 1.2.2 用户名密码身份认证流程
      • 1.2.3 关键对象
    • 1.3 授权
      • 1.3.1 概念
    • 1.3.2 授权流程
      • 1.3.3 关键对象
      • 1.3.4 权限模型
      • 1.3.5 权限分配
      • 1.3.6 权限控制
      • 1.3.6.1 基于角色的访问控制

1. 权限管理

1.1什么是权限管理

权限管理包括用户身份认证和授权两部分,简称认证授权。
对于需要访问控制的资源用户首先经过身份认证,认证通过后用户具有该资源的访问权限方可访问。

1.2用户身份认证

1.2.1 概念

身份认证,就是判断一个用户是否为合法用户的处理过程。
最常用的简单身份认证方式是系统通过核对用户输入的用户名和口令,看其是否与系统中存储的该用户的用户名和口令一致,来判断用户身份是否正确。对于采用指纹等系统,则出示指纹;对于硬件Key等刷卡系统,则需要刷卡。

1.2.2 用户名密码身份认证流程

1.2.3 关键对象

上边的流程图中需要理解以下关键对象:

Subject:主体

访问系统的用户,主体可以是用户、程序等,进行认证的都称为主体;

Principal:身份信息

是主体(subject)进行身份认证的标识,标识必须具有唯一性,如用户名、手机号、邮箱地址等,一个主体可以有多个身份,但是必须有一个主身份(Primary Principal)。

credential:凭证信息

是只有主体自己知道的安全信息,如密码、证书等。

1.3 授权

1.3.1 概念

授权,即访问控制,控制谁能访问哪些资源。主体进行身份认证后需要分配权限方可访问系统的资源,对于某些资源没有权限是无法访问的。

1.3.2 授权流程

下图中橙色为授权流程。

1.3.3 关键对象

授权可简单理解为who对what(which)进行How操作

Who,即主体(Subject),主体需要访问系统中的资源。

What,即资源(Resource),如系统菜单、页面、按钮、类方法、系统商品信息等。资源包括资源类型和资源实例,比如商品信息为资源类型,类型为t01的商品为资源实例,编号为001的商品信息也属于资源实例。

How,权限/许可(Permission),规定了主体对资源的操作许可,权限离开资源没有意义,如用户查询权限、用户添加权限、某个类方法的调用权限、编号为001用户的修改权限等,通过权限可知主体对哪些资源都有哪些操作许可。

权限分为粗颗粒和细颗粒
粗颗粒权限是指对资源类型的权限,
细颗粒权限是对资源实例的权限。

主体、资源、权限关系如下图:

1.3.4 权限模型

对上节中的主体、资源、权限通过数据模型表示。

主体(账号、密码)

资源(资源名称、访问地址)

权限(权限名称、资源id)

角色(角色名称)

角色和权限关系(角色id、权限id)

主体和角色关系(主体id、角色id)

如下图:


通常企业开发中将资源和权限表合并为一张权限表,如下:

资源(资源名称、访问地址)

权限(权限名称、资源id)

合并为:

权限(权限名称、资源名称、资源访问地址)

上图常被称为权限管理的通用模型,不过企业在开发中根据系统自身的特点还会对上图进行修改,但是用户、角色、权限、用户角色关系、角色权限关系是需要去理解的。

1.3.5 权限分配

对主体分配权限,主体只允许在权限范围内对资源进行操作,比如:对u01用户分配商品修改权限,u01用户只能对商品进行修改。

权限分配的数据通常需要持久化,根据上边的数据模型创建表并将用户的权限信息存储在数据库中。

1.3.6 权限控制

用户拥有了权限即可操作权限范围内的资源,系统不知道主体是否具有访问权限需要对用户的访问进行控制。

1.3.6.1 基于角色的访问控制

RBAC基于角色的访问控制(Role-Based Access Control)是以角色为中心进行访问控制,比如:主体的角色为总经理可以查询企业运营报表,查询员工工资信息等,访问控制流程如下:

Shiro权限管理详解(授权和注解开发)【面试点】相关推荐

  1. Shiro权限管理详解

    1权限管理1.1什么是权限管理 基本上涉及到用户参与的系统都要进行权限管理,权限管理属于系统安全的范畴,权限管理实现对用户访问系统的控制,按照安全规则或者安全策略控制用户可以访问而且只能访问自己被授权 ...

  2. (转) shiro权限框架详解06-shiro与web项目整合(上)

    http://blog.csdn.net/facekbook/article/details/54947730 shiro和web项目整合,实现类似真实项目的应用 本文中使用的项目架构是springM ...

  3. kubernetes(k8s)之rbac权限管理详解

    kubernetes(k8s)之rbac权限管理详解 RBAC简介 RBAC(Role-Based Access Control) [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 ...

  4. Linux账号和权限管理详解(超详细示例操作)!

    Linux账号和权限管理详解 一.用户账号和组账号概述 1.1 Linux基于用户身份对资源访问进行控制 1.2 用户账号 1.3 组账号 二.用户账号文件 2.1 用户账号文件 /etc/passw ...

  5. JAVAWEB开发之权限管理(一)——权限管理详解(权限管理原理以及方案)、不使用权限框架的原始授权方式详解

    知识清单 1.了解基于资源的权限管理方式 2. 掌握权限数据模型 3. 掌握基于url的权限管理(不使用Shiro权限框架的情况下实现权限管理) 4. shiro实现用户认证 5. shiro实现用户 ...

  6. (转)shiro权限框架详解06-shiro与web项目整合(下)

    http://blog.csdn.net/facekbook/article/details/54962975 shiro和web项目整合,实现类似真实项目的应用 web项目中认证 web项目中授权 ...

  7. Shiro权限管理框架详解

    1权限管理1.1什么是权限管理 基本上涉及到用户参与的系统都要进行权限管理,权限管理属于系统安全的范畴,权限管理实现对用户访问系统的控制,按照安全规则或者安全策略控制用户可以访问而且只能访问自己被授权 ...

  8. (转)shiro权限框架详解02-权限理论介绍

    http://blog.csdn.net/facekbook/article/details/54893042 权限管理解决方案 本文主要介绍权限管理的解决方法: 粗颗粒度和细颗粒度 基于url拦截 ...

  9. shiro权限框架详解02-权限理论介绍

    权限管理解决方案 本文主要介绍权限管理的解决方法: 粗颗粒度和细颗粒度 基于url拦截 使用权限管理框架 粗颗粒度和细颗粒度 什么是粗颗粒度和细颗粒度 在上一文中提到粗颗粒度和细颗粒度,但是没有细讲. ...

最新文章

  1. 全景照片不怕歪!Facebook 用神经网络矫正扭曲的地平线
  2. LeetCode Permutations(不重复数的所有排列)
  3. 常考数据结构和算法:合并有序链表
  4. eclipse下安装PyDev不显示问题
  5. python函数式编程、高阶函数
  6. win10输入法简体繁体切换
  7. 大数据和后端学习知识体系思维导图
  8. IIS访问要求输入用户名密码
  9. 通过RHCE认证之路
  10. 怎么从altera官网下载那款fpga芯片数据手册
  11. 手把手教你使用EndNote X8 详细笔记
  12. 医院随访管理系统的特点
  13. vlan internal allocation policy ascending解释
  14. 用Hbuilder实现:一行HTML代码+tab快捷键,快速创建HTML结构
  15. Niagara内容示例 4.3 Mesh Orientation vs. Rotational Force
  16. win10打开蓝牙_双系统共用蓝牙键鼠(win10+macOS)
  17. Ajax异步数据抓取
  18. Openwrt编译feeds机制
  19. 【bzoj 1340】 Escape逃跑问题 【Baltic2007】
  20. jsp上传文件到服务器

热门文章

  1. 写一个程序来模拟网桥功能。
  2. 东莞农商行再度申请港股上市:财务数据打架,多项业务违规曾被罚
  3. 跟着雷神学FFmpeg(二)
  4. 《Untiy Shader入门精要》彩图
  5. Python 使用zxing解析二维码
  6. python 手动安装包的两种方法
  7. Word/PPT/PDF怎么免费转为JPG图片?
  8. 高德地图添加谷歌图层
  9. 2023年五个WhatsApp防止封号攻略看这里!
  10. 计算机系统喇叭发生警报,电脑启动时报警的处理方法 根据机箱喇叭声音判断电脑故障的方法...