若依角色与权限字符串

news2024/12/23 17:43:16

文章目录

  • 一、简介
    • 1.基于权限字段串
    • 2.基于角色
  • 二、若依的权限控制
    • 1.介绍
    • 2.实践


一、简介

基于权限字段串和基于角色的访问控制是两种不同的权限管理模型,它们各自有其优点和应用场景。下面是这两种模型的基本概念:

1.基于权限字段串

基于权限字段串(Permission String-Based Access Control)的模型中,用户的权限被编码成一个字符串或者一系列的标志位(通常是二进制)。这些字符串或标志位代表了用户可以执行的一系列操作。

例如,在一个简单的文件系统中,可能有以下几种权限:读取、写入和执行。对于每个文件,都可以分配这三个权限给用户,形成一个三位的二进制数,如"110"表示用户拥有读取和写入权限,但没有执行权限。

这种方式的优点是简单直观,可以直接通过比较权限字符串来判断用户是否有某个特定的权限。然而,缺点是在大型系统中,随着功能的增长和变化,权限字符串可能会变得非常复杂,难以管理和维护。

2.基于角色

基于角色的访问控制(Role-Based Access Control, RBAC)是一种更复杂的权限管理模式。在这种模型中,权限不是直接赋予用户的,而是通过角色间接赋予。首先定义一系列的角色,每个角色都有一组相关的权限。然后将角色分配给用户,从而实现了对用户权限的管理。

在RBAC中,通常存在三种类型的实体:

用户(User):实际使用系统的主体。
角色(Role):一组权限的集合,它可以被赋予用户。
权限(Permission):允许进行的具体操作,比如查看、编辑、删除等。

RBAC的优势在于它的灵活性和可扩展性。新的角色可以很容易地创建并分配给用户,而不需要修改现有的用户权限。此外,由于权限是与角色关联的,而不是直接与用户关联,因此当需要更改权限时,只需要更改相关角色的权限设置,而不需要逐一调整每个用户的权限。

总的来说,基于权限字段串的方法适用于较小且相对稳定的系统,而在大型、复杂且不断发展的系统中,基于角色的访问控制模型更为适用。

二、若依的权限控制

1.介绍

若依框架采用了基于角色(Role-Based Access Control, RBAC)的权限控制模型。这种模型将权限与角色相关联,而不是直接与用户关联,从而提高了灵活性和可扩展性。

在若依框架中,用户通过被赋予不同的角色来获得相应的权限。开发者可以创建多个角色,并为每个角色分配不同的权限。然后将这些角色分配给用户,以实现对用户权限的管理。

此外,若依框架还提供了数据权限控制、按钮级权限控制等功能,以适应复杂的业务需求。这些都是基于角色的权限控制模型的一部分,而不是基于权限字段串的方法。

2.实践

  • 自定义接口
    下面定义了一个get接口,并且设置了该接口的权限字符串为system:student:permTest
    在这里插入图片描述

  • 前端新建和配置菜单权限
    在这里插入图片描述分配权限
    在这里插入图片描述

  • 前端添加按钮和定义接口
    在这里插入图片描述
    绑定触发事件
    在这里插入图片描述
    设置api接口
    在这里插入图片描述

  • 切换用户测试
    在这里插入图片描述点击按钮后
    在这里插入图片描述验证成功

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1293106.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于ssm实验室课程管理系统源码和论文

idea 数据库mysql5.7 数据库链接工具:navcat,小海豚等 环境: jdk8 tomcat8.5 摘 要 随着科学实验规模的不断扩大,实验室课程数量的急剧增加,有关实验室课程的各种信息量也在不断成倍增长。面对庞大的信息量,就需要有…

SpringCloud简介和用处

Spring Cloud是一套基于Spring Boot的微服务框架,它旨在提供一种快速构建分布式系统的方法。它可以帮助开发人员构建具有高可用性、可扩展性和容错性的微服务,并通过Spring Boot的开发工具和库提供强大的支持。 一、简介 Spring Cloud是Spring家族中的一…

Spark Structured Streaming使用教程

文章目录 1、输入数据源2、输出模式3、sink输出结果4、时间窗口4.1、时间窗口4.2、时间水印(Watermarking) 5、使用例子 Structured Streaming是一个基于Spark SQL引擎的可扩展和容错流处理引擎,Spark SQL引擎将负责增量和连续地运行它&#…

2023-2024-1-高级语言程序设计-第2次月考编程题

注:此前已发布过的题解不再发布(原题请在下面位置进行搜索)。 7-1-2 排序(算法任意) 本题要求将给定的n个整数从大到小排序后输出(可使用任意排序算法)。 输入格式: 输入第一行给出一个不超过10的正整数n。第二行给…

WVP-RPO开源项目搭建实践

0.拉取代码 GitHub - 648540858/wvp-GB28181-pro: WEB VIDEO PLATFORM是一个基于GB28181-2016标准实现的网络视频平台,支持NAT穿透,支持海康、大华、宇视等品牌的IPC、NVR、DVR接入。支持国标级联,支持rtsp/rtmp等视频流转发到国标平台&…

详细解读电力DLT698.45-2017通信规约--正向有功总电能

建立连接请看这篇:详细解读DLT698.45-2017通信规约--预连接响应http://mp.weixin.qq.com/s?__bizMzA3NjAwMjQzMQ&mid2652026396&idx1&sna0a17f005d23136c922a7c381ddb7e75&chksm8481f30cb3f67a1a94e66db77e61fe73c22b1904fcdbb0144108e132b265e7b4…

dtaidistance笔记:dtw_ndim (高维时间序列之间的DTW)

1 数据 第一个维度是sequence的index,每一行是多个元素(表示这一时刻的record) from dtaidistance.dtw_ndim import *s1 np.array([[0, 0],[0, 1],[2, 1],[0, 1],[0, 0]], dtypenp.double) s2 np.array([[0, 0],[2, 1],[0, 1],[0, .5],[0…

水果党flstudio用什么midi键盘?哪个版本的FL Studio更适合我

好消息!好消息!特大好消息! 水果党们!终于有属于自己的专用MIDI键盘啦! 万众期待的Novation FLKEY系列 正式出炉! 话有点多话,先分享一份干货,尽快下载 FL Studio 21 Win-安装包&…

搜索推荐技术-爱奇艺搜索引擎技术

一、爱奇艺的搜索引擎框架示意图 即通过召回系统,即基于文本匹配的matching system,得到大量视频资源的候选集,经过粗排和精排,最后返回给用户。重点在于召回模块和排序模块。 二、召回模块 召回模块比较重要的是基础相关性&am…

Unity Meta Quest 一体机开发(九):【手势追踪】通过录制抓取手势实现自定义抓取姿势

文章目录 📕教程说明📕录制前的准备📕第一种录制方法(Hand Grab Pose Tool 场景)⭐在运行模式中确认录制⭐保存录制的手势,将物体做成 Prefab⭐在编辑阶段调整抓取手势🔍Fingers Freedom&#x…

leetcode 622. 设计循环链表

这道题讲了两种方法,第一个代码是用数组实现的,第二个是用链表实现的,希望对你们有帮助 (最好在VS自己测试一遍,再放到 leetcode上哦) 下面的是主函数(作参考),静下心来…

第21章网络通信

Internet 提供了大量有用的信息,很少有人能在接触过Internet后拒绝它的诱惑。计算机网络实现了多台计算机间的互联,使得它们彼此之间能够进行数据交流。网络应用程序就是在已连接的不同计算机上运行的程序,这些程序借助于网络协议&#xff0c…

孩子都能学会的FPGA:第二十四课——用FPGA和格雷码实现异步FIFO

(原创声明:该文是作者的原创,面向对象是FPGA入门者,后续会有进阶的高级教程。宗旨是让每个想做FPGA的人轻松入门,作者不光让大家知其然,还要让大家知其所以然!每个工程作者都搭建了全自动化的仿…

加载离线镜像包:在线镜像离线为tar包、tar离线镜像包加载并根据imageId打tag

第一步:在线环境压缩离线镜像: 需要两个文件,第一个是脚本文件image_offline_load.sh脚本,第二个是image_list.txt 按行 存放需要离线的镜像名称 ./image_offline_load.sh save image_list.txt output.tar第二步:在离…

Nginx 简单入门操作

前言:之前的文章有些过就不罗嗦了。 Nginx 基础内容 是什么? Nginx 是一个轻量级的 HTTP 服务器,采用事件驱动、异步非阻塞处理方式的服务器,它具有极好的 IO 性能,常用于 HTTP服务器(包含动静分离)、正向代理、反向代理、负载均衡 等等. Nginx 和 Node.js 在很多方…

Docker快速理解及简介

docker快速理解及简介 1.Docker为什么出现? 迁移一个项目时,运行文档、配置环境、运行环境、运行依赖包、操作系统发行版、内核等都需要重新安装配置,比较麻烦。 2.Docker是什么? Docker是基于Go语言实现的云开源项目。解决了运行…

Altium Designer实用系列(五)----整理并导出PCB的BOM表

一、引言 最近老师安排了一个小的任务,就是把我们项目的两个电路板BOM整合一下,要注明元器件的耐温、耐压、购买渠道等等内容。    一开始我觉得这工作内容太简单了,两分钟的事。但是当我实际开始干的时候,才发现,好…

【react】动态页面转换成html文件下载,解决样式问题

需求 今天遇到一个需求,挺恶心人的,将一个在线文档页面,可以导出成为html页面查看。 看到网上有使用fs模块,通过react的ReactDOMServer.renderToStaticMarkup将组件转成html字符串,输出文件了。 但是我尝试了&#x…

CodeSys学习笔记

文章目录 1.运动控制的两种方式1.1.SM3_CNC1.2.SM3_Robotics 2.两种运动控制方式的速度、加速度等参数的控制2.1.SM3_CNC2.2.SM3_Robotics 3.CNC的M指令的使用(实现)逻辑。4.SM3_Robotics中的坐标系5.SM3_Robotics如何实现插补并连续执行? 记…

【Linux】diff命令使用

diff命令 是一个用于比较两个文件或目录之间差异的命令。它可以显示两个文件之间的行级别差异,并以易于阅读的格式输出结果。 著者 由保罗艾格特、迈克海特尔、大卫海耶斯、理查德史泰尔曼和Len Tower撰写。 diff命令 -Linux手册页 语法 diff [选项] [文件1]…