2017-01-12 2 views
0

Ich verwende IBM Bluemix, um den Node-RED-Fluss zu generieren. Node-RED-Code fungiert als Server und Client ruft die Node-RED über API auf.Deaktiviere HTTP-Client-Aufrufe für IBM Bluemix Node-RED Server-API

Der Client kann die Bluemix Node-RED-Server-API über HTTP- und HTTPS-Methoden aufrufen. Ich muss die eingehenden HTTP-Aufrufe deaktivieren.

  1. , die verfügbar beliebige Verfahren zum Deaktivieren in-comming HTTP Anrufe über bluemix.setting oder usw.

  2. I die Funktionsknoten nach dem HTTP-IN-Knoten verwendet. Die Überprüfung der Header zur Identifizierung der Anfrage erfolgt über HTTP oder HTTPS. Wenn es sich um HTTP handelt, legen Sie die Antwort-Header wie folgt fest.

    msg.res.sendStatus(403).send('HTTP disabled')  
    msg.res.sendStatus(403)  
    msg.res.status(403) 
    

in der ganzen Zeit, die ich

Deprecated call to msg.res.sendStatus 
Deprecated call to msg.res.status 

bin immer ich möchte, wie dieses Problem zu lösen?

+0

Meinst du, du machst alle 3 Anrufe, die in Option 2 aufgelistet sind oder dass du jeden von ihnen ausprobiert hast? – hardillb

+0

Ich versuchte eins nach dem anderen. Es blockiert HTTP, aber das Problem wird Warnmeldungen einzeln genannt. –

Antwort

1
  1. behinderten Admin-api, sollten Sie httpAdminRoot-false gesetzt. Alternativ können Sie adminAuth verwenden, um Zugriffskontrolle auf dem Server-Betreiber api zu ermöglichen - http://nodered.org/docs/security

  2. Um eine HTTP-Anforderung von einem HTTP In Knoten empfangen zu reagieren, können Sie die entsprechenden Eigenschaften der Nachricht einstellen müssen und übergeben es an ein HTTP Response Knoten. Sie dürfen keine Call-Funktionen von msg.res direkt sein - das ist gemäß der Protokollnachricht, die Sie erhalten, veraltet. Der Info-Registerkarte für die HTTP Response Knoten beschreibt, welche Eigenschaften Sie festlegen können, einschließlich:

    • payload als der Körper der Antwort gesendet
    • statusCode, falls eingestellt, als der Antwortstatuscode (Standard verwendet wird: 200
    • )

Zum Beispiel Ihr Function Knoten tun würde:

msg.statusCode = 403; 
msg.payload = "HTTP disabled"; 
return msg; 

und dann verkabeln, dass Function Knoten zu einem HTTP Response Knoten.

+0

derzeit habe ich Probleme mit HTTP-Blockierung. adminAuth funktioniert gut. –

+0

Ich habe versucht, den statusCode auch zu verwenden. msg.statusCode = 401; Rückgabe msg.statusCode; Aber es ist kein Erfolg. Fehler erhalten Wenn wir nicht auf die msg.res zugreifen können, wie kann dann der statusCode auf response gesetzt werden? –

+0

So hat das Node-RED Git Hub-Beispiel es definiert. https://github.com/node-red/node-red/blob/master/nodes/core/io/21-httpin.js?pr=%2Fmetc%2Fnode-red%2Fpull%2F1 –