EMQ设定ACL规则来控制客户端对主题的订阅权限

news2025/1/19 3:37:41

实现原理:EMQ可以通过制订ACL规则,校验客户端每个发布(Publish)/订阅(Subscribe) 的权限

本次采用的是EMQ Mnesia ACL。使用 EMQ X 内置的 Mnesia 数据库存储 ACL 规则

测试过程:

1本次实验环境,1个服务端(发布1个主题),2个客户端订阅这1个主题.

客户端ID=jiang,jiang123

服务端ID=mqtt_jryclient_id_001

2采用PSOTMAN直接调用HTTP API实现规则写入。

规则字段说明:

login:客户端的 Username 或 Client ID.

topic:控制的主题

action:操作行为,可选值:pub | sub | pubsub

allow:是否允许

写入规则1:允许客户端ID(jiang)订阅主题123

写入规则2:不允许客户端ID(jiang123)订阅主题123

3 然后执行服务端发布和客户端订阅操作,查看结果

结果:只有1个客户端负责规则订阅成功

 

主题数只有1个。

结论:EMQ可以设定ACL规则,来控制每个客户端对主题的订阅权限。

     可以实现1个主题,只允许1个客户端订阅。或允许指定多个客户端订阅1个主题

     控制的规则可以直接调取HTTP请求,也可以使用外部 MySQL 数据库存储 ACL 规则

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

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

相关文章

NumPy一维数组、二维数组与Pandas的Series、DataFrame行列结构和横纵方向的统一说明

最近在这个问题上耽误了一些时间,原因是之前个人理解上出了一些偏差,又受到错误文章的误导,把这个问题搞复杂了,现在统一梳理一下。在展开之前,先明确说明的是:NumPy的二维数组与Pandas的DataFrame&#xf…

7、Javaweb_tomcatservlet

web相关概念 1. 软件架构 1. C/S:客户端/服务器端 2. B/S:浏览器/服务器端 2. 资源分类 1. 静态资源:所有用户访问后,得到的结果都是一样的,称为静态资源.静态资源可以直接被浏览器解析 * 如&am…

2023年最全盘点 | 16款跨平台应用程序开发框架

近年来小程序技术被微信及其生态应用带的如火如荼的,开发者的世界里,小程序的技术非常受关注,特别在流量承接及跨端开发方面,均受到不同规模的企业关注及积极实践。 2023年,小程序依然很火,但却有了一些不…

元宇宙产业委MCC|于佳宁:加密资产摆脱不了周期性规律

2022年,加密行业面临寒冬,加密货币市场总价值大量缩水,降逾1.45万亿美元,期间多家加密公司接连倒塌,引发市场连锁效应。 加密货币总市值降逾1.45万亿美元 根据CoinMarketCap数据,加密货币总市值(Total Cry…

【服务器数据恢复】某品牌DS系列服务器RAID5数据恢复案例

服务器数据恢复环境: 某单位一台某品牌DS系列服务器连接4个扩展柜; 50块磁盘组建两组RAID5,其中一组由27块磁盘组建的RAID5存放的是Oracle数据库文件; 上层一共划分11个卷。 服务器故障: 磁盘故障导致存放Oracle数据库…

JavaScript类和对象

1、面向对象与面向过程 1.1 面向过程编辑POP(Process-oriented programming) 面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候再一个一个的依次调用就可以了。面向过程,就是按照我们分析好的步骤&…

20张图带你了解JVM运行时数据区

运行时数据区总览 内存是非常重要的系统资源,是硬盘和CPU的中间仓库及桥梁,承载着操作系统和应用程序的实时运行。JVM内存布局规定了Java在运行过程中内存申请、分配、管理的策略,保证了JVM的高效稳定运行。不同的JVM对于内存的划分方式和管…

C 程序设计教程(11)—— 字符数据的输入与输出

C 程序设计教程(11)—— 字符数据的输入与输出 该专栏主要介绍 C 语言的基本语法,作为《程序设计语言》课程的课件与参考资料,用于《程序设计语言》课程的教学,供入门级用户阅读。 目录C 程序设计教程(11&…

【2004NOIP普及组】T2.花生采摘 试题解析

【2004NOIP普及组】T2.花生采摘 试题解析 时间限制: 1000 ms 内存限制: 65536 KB 【题目描述】 鲁宾逊先生有一只宠物猴,名叫多多。这天,他们两个正沿着乡间小路散步,突然发现路边的告示牌上贴着一张小小的纸条:“欢迎免费品尝我种的花生!——熊字”。 鲁宾逊先生…

Android---Chip

Chip Chip 代表一个小块中的复杂实体,如联系人。它是一个圆形按钮,由一个标签,一个可选的芯片图标和一个可选的关闭图标组成。如果 Chip 可检查,则可以点击或切换Chip 。 style"style/Widget.MaterialComponents.Chip.Action…

疫情在家搭建的简单易学的SLAM建图机器人

1 简介 Easy_mqOS 是我仿照ROS 搭建的基于MQTT的简易机器人分布式开发框架,是一种轻量级并且十分容易上手的框架,支持多个节点的主题的订阅和单topic发布,节点之间独立、解耦合。没有复杂的文件配置,一定的make编程基础,像正常启动服务一样&a…

Redis未授权访问漏洞(四)SSH key免密登录

前言 系列文章 Redis未授权访问漏洞(一)先导篇 Redis未授权访问漏洞(二)Webshell提权篇 Redis未授权访问漏洞(三)Redis写入反弹连接定时任务 SSH key免密登录 实战实验 环境准备 实验前我们先来复习一遍ssh-key免密登录的流程 攻击机: Centos7 IP:192.168.142.44 靶…

局部变量的特点以及成员变量的区别

1. 概念在上面的章节中,其实已经跟大家介绍了局部变量的概念。即:局部变量是在定义形参、方法或代码块内部的变量,该变量只在当前方法、代码块中有效。2. 特点局部变量具有如下特点:● 局部变量声明在方法、构造方法或者代码块、形…

Mask RCNN网络源码解读(Ⅴ) --- Mask R-CNN论文解读环境配置以及训练脚本解析

目录 1.源码地址 2.项目配置 2.1 环境配置 2.2 文件结构 2.3 预训练权重下载地址(下载后放入当前文件夹中) 2.4 数据集:本例程使用的有COCO2017数据集和Pascal VOC2012数据集 2.4.1 COCO2017数据集 2.4.2 Pascal VOC2012数据集 2…

matplotlib+cartopy+geopandas,实现专业地图可视化!

知乎上有人问如何实现精细化地图?现有的excel、tableau、powerbi都只能套用有限的模板,是否有工具能实现高度定制化?除了专业的Gis软件外,我能想到相对完美的就是使用Python来实现。如果想制作出版级的地图可视化图表,…

《UEFI内核导读》UEFI Application Binary Interface (ABI)简介

敬请关注:“固件C字营 UEFI根据CPU体系结构和编译器的不同有着不同的“调用约定”统称之为“EFI ABI”。以MSVC和x86/x64举例来说,默认MSVC/x86使用 “C标准cdecl”,MSVC/x64使用“MSVC x64 ABI”。Gcc/x86使用“C标准cdecl”,Gc…

ESP-IDF:使用vector和deque容器进行打分排序例程

ESP-IDF实现例程&#xff1a; /5位选手&#xff0c;分别打十个分数&#xff0c;取中间8个分数&#xff0c;求平均值&#xff0c;然后根据选手的分数排序输出/ #include <stdio.h> #include using namespace std; #include #include #include #include class playe…

mongoDB原子操作事务

原子操作 原子操作&#xff08;atomic operation&#xff09;指的是由多步操作组成的一个操作。如果该操作不能原子地执行&#xff0c;则要么执行完所有步骤&#xff0c;要么一步也不执行&#xff0c;不可能只执行所有步骤的一个子集。不可中断的一个或者一系列操作, 也就是不…

Vue3——第三章(生命周期钩子)

一、setup() Vue3在组合式 API中去掉了在Vue3中的beforeCreate、created两个生命周期&#xff0c;使用setup()来顶替这两个生命周期。 二、onBeforeMount() 注册一个钩子&#xff0c;在组件被挂载之前被调用。当这个钩子被调用时&#xff0c;组件已经完成了其响应式状态的设…

国产电源芯片DP4054 软硬件兼容TP4054 规格书资料

DP4054 是一款完整的采用恒定电流/恒定电压单 节锂离子电池充电管理芯片。其SOT小封装和较少的外部元件数目使其成为便携式应用的理想器件&#xff0c;DP4054 可以适合USB 电源和适配器电源工作。跟进口的TP4054完全兼容&#xff0c;软硬件无需更改直接替换。 管脚配置 功能框…