当前位置: 首页 > news >正文

apisix的authz-casbin

目录

1、apisix的auth-casbin官方介绍

2、casbin介绍和使用

2.1基本知识:

2.2使用例子

3、配置插件

4、postman调用

5、auth-casbin的坑


1、apisix的auth-casbin官方介绍

authz-casbin | Apache APISIX® -- Cloud-Native API Gateway

2、casbin介绍和使用

casbin如果看不懂,可以学习基础语法

需要学习casbin的详细理解过程(附图片理解)(rbac模型)-CSDN博客

2.1基本知识:

r = sub, obj, act

意思:请求入参(实体,资源,方法)

p = sub, obj, act

意思:策略(实体,资源,方法)

g = _ , _

意思:角色权限,这里的意思是g收到两个参数 g = 用户,角色

2.2使用例子

"policy": "p,GRANT_ROLE_firstconsumer,/dcpyo/test, *\ng,firstconsumer,GRANT_ROLE_firstconsumer\np,GRANT_ROLE_11120150115,/dcpyo/test, *\ng,11120150115,GRANT_ROLE_11120150115\n",

"username": "appKey"

policy的意思是:

p,GRANT_ROLE_firstconsumer,/dcpyo/test, *

意思:策略GRANT_ROLE_firstconsumer有接口/dcpyo/test的所有权限

g,firstconsumer,GRANT_ROLE_firstconsumer

意思:用户firstconsumer有权限GRANT_ROLE_firstconsumer

3、配置插件

auth-caszbin username可以指定头的别名

配置一个路由例子:

{

"uri": "/dcpyo/test",

"name": "4种认证20250113",

"desc": "4种认证20250113",

"plugins": {

"authz-casbin": {

"model": " [request_definition] \n r = sub, obj, act \n [policy_definition] \n p = sub, obj, act \n [role_definition] \n g = _, _ \n [policy_effect] \n e = some(where (p.eft == allow)) \n [matchers] \n m = (g(r.sub, p.sub) || keyMatch(r.sub, p.sub)) && keyMatch(r.obj, p.obj) && keyMatch(r.act, p.act) ",

"policy": "p,GRANT_ROLE_firstconsumer,/dcpyo/test, *\ng,firstconsumer,GRANT_ROLE_firstconsumer\np,GRANT_ROLE_11120150115,/dcpyo/test, *\ng,11120150115,GRANT_ROLE_11120150115\n",

"username": "appKey"

},

"proxy-rewrite": {

"uri": "/dapi/v1.0/ssApi/getDataForGet",

"use_real_request_uri_unsafe": false

}

},

"upstream": {

"nodes": [

{

"host": "10.255.159.236",

"port": 9034,

"weight": 1

}

],

"type": "roundrobin",

"hash_on": "vars",

"scheme": "http",

"pass_host": "pass"

},

"status": 1

}

4、postman调用

调用的时候,请求头就用appKey(上面设置的别名)

5、auth-casbin的坑

auth-casbin如果多个路由配置的userName时一样的值,会导致路由1,可能用到路由2的策略,这是因为默认情况下auth-casbin会缓存策略。

conf是全局配置,这里就是隐式的使用了缓存

相关文章:

apisix的authz-casbin

目录 1、apisix的auth-casbin官方介绍 2、casbin介绍和使用 2.1基本知识: 2.2使用例子 3、配置插件 4、postman调用 5、auth-casbin的坑 1、apisix的auth-casbin官方介绍 authz-casbin | Apache APISIX -- Cloud-Native API Gateway 2、casbin介绍和使用 c…...

数学基础 --线性代数之理解矩阵乘法

理解矩阵乘法的解析 矩阵乘法(Matrix Multiplication)是线性代数中的核心操作之一。在数学、几何和工程实际中,它不仅是一种代数运算规则,还承载着丰富的几何和映射意义。本文将从多个角度深入解析矩阵乘法,帮助读者理…...

TCP Window Full是怎么来的

wireshark查看包时,会看到TCP Window Full,总结下它的特点: 1. Sender会显示 TCP Window Full 2. “Sender已发出,但,Receiver尚未ack的字节”,即Sender的 bytes in flights 3. Sender的 bytes in fligh…...

【22】Word:小李-高新技术企业政策❗

目录 题目​ NO1.2 NO3 NO4 NO5.6 NO7.8 NO9.10 若文章中存在删除空白行等要求,可以到最后来完成。注意最后一定要检查此部分!注意:大多是和事例一样即可,不用一摸一样,但也不要差太多。 题目 NO1.2 F12Fn&a…...

大数据,Hadoop,HDFS的简单介绍

大数据 海量数据,具有高增长率、数据类型多样化、一定时间内无法使用常规软件工具进行捕捉、管理和处理的数据集 合 大数据的特征: 4V Volume : 巨大的数据量 Variety : 数据类型多样化 结构化的数据 : 即具有固定格式和有限长度的数据 半结构化的数据 : 是…...

Python预训练视觉和大语言模型——精彩试读

基础模型永久改变了机器学习。从BERT到ChatGPT,从CLIP到Stable Diffusion,当数十亿个参数、大数据集与成百上千个GPU相结合时,结果刷新了纪录。《Python预训练视觉和大语言模型》呈现的真知灼见和示例代码将帮你在AWS和Amazon SageMaker上从头…...

html全局遮罩,通过websocket来实现实时发布公告

1.index.html代码示例 <div id"websocket" style"display:none;position: absolute;color:red;background-color: black;width: 100%;height: 100%;z-index: 100; opacity: 0.9; padding-top: 30%;padding-left: 30%; padding-border:1px; "onclick&q…...

Vue3初学之Element-plus Form表单

1.使用 el-form 组件 el-form 是一个表单容器&#xff0c;可以包含多个 el-form-item&#xff0c;每个 el-form-item 包裹具体的表单控件&#xff0c;如输入框、选择器、日期选择器等。 <template><el-form :model"form" label-width"120px">…...

第14章:Python TDD应对货币类开发变化(一)

写在前面 这本书是我们老板推荐过的&#xff0c;我在《价值心法》的推荐书单里也看到了它。用了一段时间 Cursor 软件后&#xff0c;我突然思考&#xff0c;对于测试开发工程师来说&#xff0c;什么才更有价值呢&#xff1f;如何让 AI 工具更好地辅助自己写代码&#xff0c;或许…...

ElasticSearch索引别名的应用

个人博客&#xff1a;无奈何杨&#xff08;wnhyang&#xff09; 个人语雀&#xff1a;wnhyang 共享语雀&#xff1a;在线知识共享 Github&#xff1a;wnhyang - Overview Elasticsearch 索引别名是一种极为灵活且强大的功能&#xff0c;它允许用户为一个或多个索引创建逻辑上…...

C++和OpenGL实现3D游戏编程【连载21】——父物体和子物体模式实现

欢迎来到zhooyu的专栏。 &#x1f525;C和OpenGL实现3D游戏编程【专题总览】 1、本节要实现的内容 上节课我们已经创建了一个基础Object类&#xff0c;以后所有的游戏元素都可以从这个基类中派生出来。同时为了操作方便&#xff0c;我们可以为任意两个Object类&#xff08;及其…...

Mac苹果电脑 怎么用word文档和Excel表格?

以下是详细步骤&#xff0c;帮助你在 MacBook 上安装和使用 Word 和 Excel&#xff1a; 安装 Microsoft Office 你可以通过以下几种方式在 MacBook 上安装 Word 和 Excel&#xff1a; 方法一&#xff1a;应用安装 pan.baidu.com/s/1EO2uefLPoeqboi69gIeZZg?pwdi2xk 方法二…...

使用AI生成金融时间序列数据:解决股市场的数据稀缺问题并提升信噪比

“GENERATIVE MODELS FOR FINANCIAL TIME SERIES DATA: ENHANCING SIGNAL-TO-NOISE RATIO AND ADDRESSING DATA SCARCITY IN A-SHARE MARKET” 论文地址&#xff1a;https://arxiv.org/pdf/2501.00063 摘要 金融领域面临的数据稀缺与低信噪比问题&#xff0c;限制了深度学习在…...

QT信号槽 笔记

信号与槽就是QT中处理计算机外设响应的一种机制 比如敲击键盘、点击鼠标 // 举例&#xff1a; 代码&#xff1a; connect(ls,SIGNAL(sig_chifanla()),ww,SLOT(slot_quchifan())); connect(ls,SIGNAL(sig_chifanla()),zl,SLOT(slot_quchifan()));connect函数&#xff1a;这是…...

【计算机网络】传输层协议TCP与UDP

传输层 传输层位于OSI七层网络模型的第四层&#xff0c;主要负责端到端通信&#xff0c;可靠性保障&#xff08;TCP&#xff09;&#xff0c;流量控制(TCP)&#xff0c;拥塞控制(TCP)&#xff0c;数据分段与分组&#xff0c;多路复用与解复用等&#xff0c;通过TCP与UDP协议实现…...

UE控件学习

ListView&#xff1a; item设置&#xff1a;使能在list设置为Entry类 关闭listview自带的滑动条 【UEUI篇】ListView使用经验总结 UE4 ListView用法总结&#xff08;二&#xff09;Item的选中与数据获取 Grid Panel&#xff1a; 常用作背包&#xff0c;每个格子大小可不相…...

ThinkPHP 8的多对多关联

【图书介绍】《ThinkPHP 8高效构建Web应用》-CSDN博客 《2025新书 ThinkPHP 8高效构建Web应用 编程与应用开发丛书 夏磊 清华大学出版社教材书籍 9787302678236 ThinkPHP 8高效构建Web应用》【摘要 书评 试读】- 京东图书 使用VS Code开发ThinkPHP项目-CSDN博客 编程与应用开…...

Linux内核编程(二十一)USB驱动开发

一、驱动类型 USB 驱动开发主要分为两种&#xff1a;主机侧的驱动程序和设备侧的驱动程序。一般我们编写的都是主机侧的USB驱动程序。 主机侧驱动程序用于控制插入到主机中的 USB 设备&#xff0c;而设备侧驱动程序则负责控制 USB 设备如何与主机通信。由于设备侧驱动程序通常与…...

【Block总结】WTConv,小波变换(Wavelet Transform)来扩展卷积神经网络(CNN)的感受野

论文解读&#xff1a;Wavelet Convolutions for Large Receptive Fields 论文信息 标题: Wavelet Convolutions for Large Receptive Fields作者: Shahaf E. Finder, Roy Amoyal, Eran Treister, Oren Freifeld提交日期: 2024年7月8日arXiv链接: Wavelet Convolutions for La…...

深入探究分布式日志系统 Graylog:架构、部署与优化

文章目录 一、Graylog简介二、Graylog原理架构三、日志系统对比四、Graylog部署传统部署MongoDB部署OS或者ES部署Garylog部署容器化部署 五、配置详情六、优化网络和 REST APIMongoDB 七、升级八、监控九、常见问题及处理 一、Graylog简介 Graylog是一个简单易用、功能较全面的…...

MySQL(56)什么是复合索引?

复合索引&#xff08;Composite Index&#xff09;&#xff0c;也称为多列索引&#xff0c;是在数据库表的多列上创建的索引。它可以提高涉及多个列的查询性能&#xff0c;通过组合多个列的值来索引数据。复合索引特别适用于需要同时过滤多列的查询。 复合索引的优点 提高多列…...

python爬虫:grequests的详细使用(基于gevent和requests的异步HTTP请求库)

更多内容请见: 爬虫和逆向教程-专栏介绍和目录 文章目录 一、grequests 概述1.1 grequests 介绍1.2 注意事项1.3 替代方案比较1.4 基本组件1.5 grequests 安装二、基本用法2.1 创建请求任务2.2 发送请求并获取响应2.3 带参数的请求三、高级用法3.1 自定义回调函数3.2 设置超时…...

低代码平台前端页面表格字段绑定与后端数据传输交互主要有哪些方式?华为云Astro在这方面有哪些方式?

目录 🔧 一、低代码平台中常见的数据绑定与交互方式 1. 接口绑定(API 调用) 2. 数据源绑定(DataSource) 3. 变量中转(临时变量 / 页面状态) 4. 数据模型绑定(模型驱动) 🌐 二、华为云 Astro 轻应用的实现方式 ✅ 1. 数据源绑定(API服务+API网关) ✅ 2. 变…...

深入浅出Spring Security

一、Spring Security基本组件 Spring Security的设计理念是提供一种可插拔的、高度可定制的安全服务。其核心功能依赖于以下几个关键组件&#xff1a; Authentication (认证): 概念: 确认用户身份的过程&#xff0c;即验证“你是谁”。核心类: Authentication 接口&#xff0c…...

Java线程工厂:定制线程的利器

在Java中&#xff0c;线程工厂&#xff08;Thread Factory&#xff09;是一个创建新线程的工厂。它提供了一种方式&#xff0c;允许你在创建线程时定制线程的属性&#xff0c;比如设置线程名称、线程的优先级、守护线程属性等。 线程工厂的主要目的是将线程的创建逻辑从使用线…...

汽车车载软件平台化项目规模颗粒度选择的一些探讨

汽车进入 SDV 时代后&#xff0c;车载软件研发呈现出开源生态构建、电子架构升级、基础软件标准化、本土供应链崛起、AI 原生架构普及、云边协同开发等趋势&#xff0c;这些趋势促使车载软件研发面临新挑战&#xff0c;如何构建适应这些变化的平台化架构成为车企与 Tier 1 的战…...

人工智能:网络安全的“智能守护者”

在数字化时代&#xff0c;网络安全已经成为企业和个人面临的重大挑战。随着网络攻击的复杂性和频率不断增加&#xff0c;传统的安全防护手段已经难以应对。人工智能&#xff08;AI&#xff09;技术的出现为网络安全带来了新的希望和解决方案。本文将探讨人工智能在网络安全中的…...

2025年6月6日第一轮

2025年6月6日 The rapid in Chiese industdy is developnig e,and it is From be in a enjoy a deep is developing The drone industry in China is developing The drone industy in china develops rapidly and is in a leading position in in the world. The dro…...

LabVIEW与PLC液压泵测控系统

针对液压泵性能测试场景&#xff0c;采用LabVIEW与西门子 PLC 控制系统&#xff0c;构建高精度、高可靠性的智能测控系统。通过选用西门子 PLC、NI 数据采集卡、施耐德变频电机等&#xff0c;结合LabVIEW 强大的数据处理与界面开发能力&#xff0c;实现液压泵压力、流量、转速等…...

powershell 安装 .netframework3.5

在 PowerShell 中安装 .NET Framework 3.5 可以通过几种不同的方法实现&#xff0c;取决于你的操作系统版本。以下是几种常见的方法&#xff1a; 方法1&#xff1a;使用 DISM 命令 对于 Windows 10 和 Windows 8.1&#xff0c;你可以使用 DISM&#xff08;Deployment Image Se…...