如何在MQTT传输WSO2消息代理中添加身份验证

如何在MQTT传输WSO2消息代理中添加身份验证,wso2,mqtt,messagebroker,wso2mb,Wso2,Mqtt,Messagebroker,Wso2mb,我已经使用WSO2消息代理创建了一个示例发布和订阅模型项目 import threading import paho.mqtt.client as mqtt def publish_1(client,topic): message="on" print("publish data") client.publish(topic,message) publish_1(client,topic) broker="localhost" topic_pub='/tem

我已经使用WSO2消息代理创建了一个示例发布和订阅模型项目

import threading
import paho.mqtt.client as mqtt

def publish_1(client,topic):
    message="on"
    print("publish data")
    client.publish(topic,message)
    publish_1(client,topic)


broker="localhost"
topic_pub='/temperature123'
topic_sub='$SYS/#'

def on_connect(client, userdata, rc):
    print("Connected with result code "+str(rc))
    client.subscribe(topic_sub)


def on_message(client, userdata, msg):
    print(msg.topic+" "+str(msg.payload))

client = mqtt.Client()
client.on_connect = on_connect
client.on_message = on_message

client.connect(broker, 1883, 60)
thread1=threading.Thread(target=publish_1,args=(client,topic_pub))
thread1.start()
但这种实现没有安全性

有人能帮我在WSO2消息代理的MQTT订阅中设置身份验证吗?
而且我在WSO2 Message broker应用程序中也没有看到任何订阅的节点信息

我的经验是Mosquitto不是WSO2 MB,但是快速查看WSO2 MB文档,它似乎支持SSL,这是保护MQTT()的标准方式。这样做的过程非常简单,只需分发适当的密钥和证书,然后使用tsl_set()在脚本中配置它们

如果您需要更精细的用户/主题级控件,那么看起来它们是通过更大的WSO2框架()提供的。但是我会让一个有更多WSO2经验的人来解释你的选择


编辑:作为旁白,用/开始主题被视为一种不好的做法,因为它会创建一个混乱的/层。我只想将主题写为“temperature123”

谢谢你的回答,但我需要在MessageBroker中执行一些基于角色的授权。例如,user1可以在主题/温度中发布消息,但user2不能这样做