禁用 IBM Bluemix Node-RED 服务器 API 的 HTTP 客户端调用

Disable HTTP client calls for IBM Bluemix Node-RED server API

我正在使用 IBM Bluemix 生成 Node-RED 流。 Node-RED 代码作为服务器和客户端通过 API 调用 Node-RED。

客户端可以通过 HTTP 和 HTTPS 方法调用 Bluemix Node-RED 服务器 API。我需要禁用 in-comming HTTP 调用。

  1. 是否有任何方法可以通过 bluemix.setting 等禁用 in-comming HTTP 调用。

  2. 我用的是HTTP IN节点后面的函数节点。检查 headers 以确定请求是 HTTP 还是 HTTPS。如果是 HTTP,则像下面这样设置响应 headers。

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

我一直在

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

请问如何解决这个问题?

  1. 要禁用管理员 api,您应该将 httpAdminRoot 设置为 false。或者,您可以使用 adminAuth 以在管理员 api - http://nodered.org/docs/security

  2. 上启用访问控制
  3. 为了响应 HTTP In 节点接收到的 HTTP 请求,您必须设置消息的适当属性并将其传递给 HTTP Response 节点。您不能直接调用 msg.res 的函数 - 根据您收到的日志消息,这已被弃用。 HTTP Response 节点的信息选项卡描述了您可以设置的属性,包括:

    • payload作为响应正文发送
    • statusCode,如果设置,用作响应状态码(默认:200)

例如,您的 Function 节点会做:

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

然后将 Function 节点连接到 HTTP Response 节点。