用户:XYZ 没有地址权限='SEND'
User: XYZ does not have permission='SEND' on address
我能够通过 Web 控制台以及使用来自我的 LDAP 服务器的凭据的 bin/artemis producer
命令进行身份验证。当我将相同的凭据与 mosquitto_pub
用于同一主题时,日志显示
User: $username does not have permission='SEND' on address $address"
我也在日志中验证了已解析的角色 - mosquitto_pub
和 artemis producer
的角色相同。在我的例子中,他们解析了一个具有 admin
权限的 producer
角色。
根据协议的不同,授权有什么不同吗?授权似乎适用于 CORE 协议和 AMQP(我已经通过 artemis producer
测试过)。
不幸的是,我无法用 artemis producer --protocol MQTT
进行交叉检查 - "protocol MQTT not supported" 失败了。
如 the documentation 中所述,遗留 admin
权限未映射到 send
权限:
ActiveMQ 5.x only has 3 permission types - read
, write
, and admin
. These permission types are described on their website. However, as described previously, ActiveMQ Artemis has 9 permission types - createAddress
, deleteAddress
, createDurableQueue
, deleteDurableQueue
, createNonDurableQueue
, deleteNonDurableQueue
, send
, consume
, browse
, and manage
. Here's how the old types are mapped to the new types:
read
- consume
, browse
write
- send
admin
- createAddress
, deleteAddress
, createDurableQueue
, deleteDurableQueue
, createNonDurableQueue
, deleteNonDurableQueue
, manage
(if mapAdminToManage
is true
)
因此,您的 producer
角色需要 write
权限。
不清楚为什么 producer
命令适用于其他协议(即核心和 AMQP),但根据您提供的内容,我相信这就是它不适用于 MQTT 的原因。
我能够通过 Web 控制台以及使用来自我的 LDAP 服务器的凭据的 bin/artemis producer
命令进行身份验证。当我将相同的凭据与 mosquitto_pub
用于同一主题时,日志显示
User: $username does not have permission='SEND' on address $address"
我也在日志中验证了已解析的角色 - mosquitto_pub
和 artemis producer
的角色相同。在我的例子中,他们解析了一个具有 admin
权限的 producer
角色。
根据协议的不同,授权有什么不同吗?授权似乎适用于 CORE 协议和 AMQP(我已经通过 artemis producer
测试过)。
不幸的是,我无法用 artemis producer --protocol MQTT
进行交叉检查 - "protocol MQTT not supported" 失败了。
如 the documentation 中所述,遗留 admin
权限未映射到 send
权限:
ActiveMQ 5.x only has 3 permission types -
read
,write
, andadmin
. These permission types are described on their website. However, as described previously, ActiveMQ Artemis has 9 permission types -createAddress
,deleteAddress
,createDurableQueue
,deleteDurableQueue
,createNonDurableQueue
,deleteNonDurableQueue
,send
,consume
,browse
, andmanage
. Here's how the old types are mapped to the new types:
read
-consume
,browse
write
-send
admin
-createAddress
,deleteAddress
,createDurableQueue
,deleteDurableQueue
,createNonDurableQueue
,deleteNonDurableQueue
,manage
(ifmapAdminToManage
istrue
)
因此,您的 producer
角色需要 write
权限。
不清楚为什么 producer
命令适用于其他协议(即核心和 AMQP),但根据您提供的内容,我相信这就是它不适用于 MQTT 的原因。