当kura在Kapua上发布到localhost:1883时,我收到以下错误:
警告oekbcpKapuaSecurityBrokerFilter - 用户1:kapua-broker(kapua-broker - tcp://10.0.2.2:56178 - conn id无权写入:topic:// VirtualTopic.hahaha.kapua 1840321435420579455)-broker.DHT11Sensor。 DHT11Data 13:26:43.493 [ActiveMQ NIO Worker 5]警告oaabTransportConnection.Service - 连接时发生安全性错误:tcp://10.0.2.2:56178,用户1:kapua-broker(kapua-broker - tcp:// 10.0.2.2:56178 - conn id 1840321435420579455)无权写入:topic:// VirtualTopic.hahaha.kapua-broker.DHT11Sensor.DHT11Data 13:26:43.493 [ActiveMQ NIO Worker 5]警告oaatmqtt.MQTTProtocolConverter - 失败发送MQTT发布:13:26:48.495 [ActiveMQ NIO Worker 6]警告oekbcpKapuaSecurityBrokerFilter - 用户1:kapua-broker(kapua-broker - tcp://10.0.2.2:56178 - conn id 1840321435420579455)无权编写
据我所知,Kapua有一个ACL访问规则,用于定义谁可以在代理上发布/订阅/管理不同的主题/渠道。如果您使用具有代理权限的用户连接到Kapua,那么您只能写入主题:topic:// VirtualTopic。{account-name}。{client-id}现在在您的情况下,这意味着您有帐户hahaha和id为kapua-broker的客户。是这样的吗?如果没有相应地设置主题。例如,类似于:topic:// VirtualTopic.kapua-sys.client-1.DHT11Sensor.DHT11Data,当您使用kapua-broker用户连接时,请将client-1指定为客户端ID。 Kapua-broker用户在kapua-sys帐户下(这有点令人困惑,因为kapua-sys也是用户)。这对你有帮助吗?
我无法评论@ uros-mesaric问题。它的答案是正确的。下面只是一个澄清
在Kapua,您可以根据您的用户许可发布/订阅。
如果您的用户只有broker:connect
权限,您只能发布/订阅主题:
{account-name}/{connectionClientId}/{semanticTopic}
在您的特定情况下,您应该发布/订阅主题:
kapus-sys/1840321435420579455/DHT11Sensor/DHT11Data
kapua-sys
是用户kapua-broker所属的帐户名,而1840321435420579455
是用于创建连接的clientId。
请注意,用于连接的用户名和帐户名在Kapua中是两个不同的地方。一个帐户有多个用户。