Browse Source

Access key blanking for calls that the client uses.

cameronts 2 years ago
parent
commit
59351b1e00
2 changed files with 16 additions and 0 deletions
  1. 10 0
      controllers/node.go
  2. 6 0
      mq/publishers.go

+ 10 - 0
controllers/node.go

@@ -319,6 +319,12 @@ func getNetworkNodes(w http.ResponseWriter, r *http.Request) {
 		return
 		return
 	}
 	}
 
 
+	for _, node := range nodes {
+		if len(node.NetworkSettings.AccessKeys) > 0 {
+			node.NetworkSettings.AccessKeys = nil // not to be sent back to client; client already knows how to join the network
+		}
+	}
+
 	//Returns all the nodes in JSON format
 	//Returns all the nodes in JSON format
 	logger.Log(2, r.Header.Get("user"), "fetched nodes on network", networkName)
 	logger.Log(2, r.Header.Get("user"), "fetched nodes on network", networkName)
 	w.WriteHeader(http.StatusOK)
 	w.WriteHeader(http.StatusOK)
@@ -395,6 +401,10 @@ func getNode(w http.ResponseWriter, r *http.Request) {
 		return
 		return
 	}
 	}
 
 
+	if len(node.NetworkSettings.AccessKeys) > 0 {
+		node.NetworkSettings.AccessKeys = nil // not to be sent back to client; client already knows how to join the network
+	}
+
 	response := models.NodeGet{
 	response := models.NodeGet{
 		Node:         node,
 		Node:         node,
 		Peers:        peerUpdate.Peers,
 		Peers:        peerUpdate.Peers,

+ 6 - 0
mq/publishers.go

@@ -85,6 +85,12 @@ func NodeUpdate(node *models.Node) error {
 		return nil
 		return nil
 	}
 	}
 	logger.Log(3, "publishing node update to "+node.Name)
 	logger.Log(3, "publishing node update to "+node.Name)
+
+	if len(node.NetworkSettings.AccessKeys) > 0 {
+		node.NetworkSettings.AccessKeys = nil // not to be sent (don't need to spread access keys around the network; we need to know how to reach other nodes, not become them)
+	}
+	node.AccessKey = "" // no need to send this node's access key to others
+
 	data, err := json.Marshal(node)
 	data, err := json.Marshal(node)
 	if err != nil {
 	if err != nil {
 		logger.Log(2, "error marshalling node update ", err.Error())
 		logger.Log(2, "error marshalling node update ", err.Error())