首页 > 其他分享 >角色授权概念

角色授权概念

时间:2023-03-04 17:03:03浏览次数:22  
标签:角色 概念 用户 访问 授权 权限 资源

1. 角色授权概念

(1)授权,也叫访问控制,即在应用中控制谁访问哪些资源(如访问页面/编辑数据/页面操作等)。在授权中需了解的几个关键对象:主体(Subject)、资源(Resource)、权限(Permission)、角色(Role)
(2)主体(Subject):访问应用的用户,在Shiro中使用Subject代表该用户。用户只有授权后才允许访问相应的资源。
(3)资源(Resource):在应用中用户可以访问的URL,比如访问JSP页面、查看/编辑某些数据、访问某个业务方法、打印文本等等都是资源。用户只要授权后才能访问
(4)权限(Permission):安全策略中的原子授权单位,通过权限我们可以表示在应用中用户有没有操作某个资源的权力。即权限表示在应用中用户能不能访问某个资源,如:访问用户列表页面查看/新增/修改/删除用户数据(即很多时候都是CRUD(增查改删)式权限控制)等。权限代表了用户有没有操作某个资源的权利,即反映在某个资源上的操作允不允许。
(5)Shiro支持粗粒度权限(如用户模块的所有权限)和细粒度权限(操作某个用户的权限,即实例级别的)
(6)角色(Role):权限的集合,一般情况下会赋予用户角色而不是权限,即这样用户可以拥有一组权限,赋予权限时比较方便。典型的如:项目经理、技术总监、CTO、开发工程师等都是角色,不同的角色拥有一组不同的权限

2. 授权流程

(1)首先调用Sub ject.isPermitted/hasRole接口,其会委托给SecurityManager,而SecurityManager接着会委托给Authorizer;
(2)Authorizer是真正的授权者,如果调用如isPermitted(“user:view”),其首先会通过PermissionResolver把字符串转换成相应的Permission实例;
(3)在进行授权之前,其会调用相应的Realm获取Subject相应的角色/权限用于匹配传入的角色/权限;
(4)Authorizer会判断Realm的角色/权限是否和传入的匹配,如果有多个Realm,会委托给ModularRealmAuthorizer进行循环判断,如果匹配如isPermitted/hasRole会返回true,否则返回false表示授权失败

image

标签:角色,概念,用户,访问,授权,权限,资源
From: https://www.cnblogs.com/banzhuanwangsir/p/17178566.html

相关文章

  • 数据库postgre,第一节课基础概念与install,SQL语句
    数据库第一次课:概念DB概念(基础概念、目标、码、关系)数据库目标数据冗余与不一致数据访问困难数据孤立完整性原子性并发访问异常安全性数据视图、DML、DDL、......
  • JS 概念、历史、发展和Js简介
    一、JS简介JavaScript(简称“JS”)是一种具有函数优先的轻量级,解释型或即时编译型的编程语言。虽然它是作为开发Web页面的脚本语言而出名,但是它也被用到了很多非浏览器环境......
  • java轻量级锁、重量级锁、可重入锁、偏向锁、自旋锁的概念
    1、重量级锁作为互斥同步的方式,是最基础的锁,其他的锁都是为了减少开销做的优化,重量级锁借助了monitor对象,monitor对象中有三个区域,分别是entitysite、owner和w......
  • 11_Spring_AOP概念和原理
    AOP切面编程一般可以帮助我们在不修改现有代码的情况下,对程序的功能进行拓展,往往用于实现日志处理,权限控制,性能检测,事务控制等AOP实现的原理就是动态代理,在有接口的......
  • 11_Spring_AOP概念和原理
    AOP切面编程一般可以帮助我们在不修改现有代码的情况下,对程序的功能进行拓展,往往用于实现日志处理,权限控制,性能检测,事务控制等AOP实现的原理就是动态代理,在有接口的......
  • 垃圾回收相关概念整理
    1引用跟踪算法CLR使用一种引用跟踪算法来确实对象是否回收。2根所有引用类型的变量都叫根。3活动根活动根分为三种:当前正在执行的方法(或在其调用栈的任何一......
  • DevOps 概念
    DevOps是什么Development和Operations的组合词;DevOps:Development和Operations的组合DevOps看作开发(软件工程)、技术运营和质量保障(QA)三者的交集。突出重视软件开发人......
  • 网络通信基本概念
    通信人与人、人与物、物与物之间通过某种媒介和行为进行信息传递与交流网络通信指终端设备之间通过计算机网络进行的通信数据通信网络由路由器、交换机、防火墙、无线......
  • k8s基础概念
    k8s组件组件架构图Master组件kube-apiserverk8sApI,集群的统一入口,各组件的协调者,以RESTfulAPI提供接口服务,所有对象资源的增删改查和监听操作都交给APIServer处理后再提......
  • 33 个重要的 JavaScript 概念
    33个重要的JavaScript概念原创2022-12-2418:21·程序媛最幽默 了解这33个JavaScript概念绝对会让你将来的职业生涯受益无穷。话不多说,直接进入主题!1.调用栈......