Mosquitto中的Acl文件配置

问题描述 投票:0回答:1

我的蚊子中有ACL文件:

user b
topic read s1#
topic write s1#

topic write s2
topic read s2


pattern write s3_%c#
pattern read s3_%c#

pattern write s4_%c
pattern read s4_%c


pattern  write s5_%u#
pattern  read s5_%u#

pattern  write s6_%u
pattern  read s6_%u

下面从客户端ID s4_abc向主题abc的请求工作正常:

mosquitto_pub -h servername -t s4_abc -m "test" -p 1883 -u b -P b -i abc -d

下面从客户端ID s3_abcA向主题abc的请求失败:

mosquitto_pub -h servername -t s3_abcA -m "test" -p 1883 -u b -P b -i abc -d

为什么失败?我期望模式s3_%c#表示“ s3_abc”之后的主题中的任何短语都可以。

mqtt mosquitto
1个回答
0
投票

您在ACL文件中的主题和模式无效,它们之间的通配符之间必须有/

通配符仅匹配整个主题细分。

%u%c也是一样>

从mosquitto.conf手册页:

可用于替换的模式是:

%c以匹配客户端%u的客户端ID以匹配用户名客户端。 替换模式必须是唯一的文本等级]]。模式ACL适用于所有用户,即使“用户”关键字先前已给出。

示例:

模式写入传感器/%u /数据

允许访问网桥连接消息:

模式写入$ SYS / broker / connection /%c / state

© www.soinside.com 2019 - 2024. All rights reserved.