|
@@ -479,7 +479,7 @@ func authenticateHost(response http.ResponseWriter, request *http.Request) {
|
|
return
|
|
return
|
|
}
|
|
}
|
|
|
|
|
|
- // Create EMQX creds if not found
|
|
|
|
|
|
+ // Create EMQX creds and ACLs if not found
|
|
if servercfg.GetBrokerType() == servercfg.EmqxBrokerType {
|
|
if servercfg.GetBrokerType() == servercfg.EmqxBrokerType {
|
|
if err := mq.CreateEmqxUser(host.ID.String(), host.HostPass, false); err != nil {
|
|
if err := mq.CreateEmqxUser(host.ID.String(), host.HostPass, false); err != nil {
|
|
slog.Error("failed to create host credentials for EMQX: ", err.Error())
|
|
slog.Error("failed to create host credentials for EMQX: ", err.Error())
|
|
@@ -487,6 +487,15 @@ func authenticateHost(response http.ResponseWriter, request *http.Request) {
|
|
if err := mq.CreateHostACL(host.ID.String(), servercfg.GetServerInfo().Server); err != nil {
|
|
if err := mq.CreateHostACL(host.ID.String(), servercfg.GetServerInfo().Server); err != nil {
|
|
slog.Error("failed to add host ACL rules to EMQX: ", err.Error())
|
|
slog.Error("failed to add host ACL rules to EMQX: ", err.Error())
|
|
}
|
|
}
|
|
|
|
+ for _, nodeID := range host.Nodes {
|
|
|
|
+ if node, err := logic.GetNodeByID(nodeID); err == nil {
|
|
|
|
+ if err = mq.AppendNodeUpdateACL(host.ID.String(), node.Network, node.ID.String(), servercfg.GetServer()); err != nil {
|
|
|
|
+ slog.Error("failed to add ACLs for EMQX node", "error", err)
|
|
|
|
+ }
|
|
|
|
+ } else {
|
|
|
|
+ slog.Error("failed to get node", "nodeid", nodeID, "error", err)
|
|
|
|
+ }
|
|
|
|
+ }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|