使用请求从 nodeJS 调用安全钻取 URL

Posted

技术标签:

【中文标题】使用请求从 nodeJS 调用安全钻取 URL【英文标题】:Calling secured drill URL from nodeJS using request 【发布时间】:2018-05-21 13:17:48 【问题描述】:

我有使用负载平衡器保护和公开的 NodeJS 服务。需要调用使用j_secuirty_check投影的drill Query.JSON API。

现有逻辑: 首先使用凭据点击 j_security_check URL 并接收 cookie。 使用上述步骤中收到的 cookie 来点击 query.JSON URL。

代码片段:

var options1 = 
    url: 'http://<HOSTNAME>:8047/query.json',
    method: 'POST',
    json: JSON.parse(' "queryType":"SQL", "query":  "show schemas"'),
    headers : 
        cookie : setcookie
    
;

上述方法在没有负载均衡器的情况下也可以工作。 示例:

backend service running on http://localhost:3000
Drill URL: http://<SOMEIP:PORT>/query.JSON 

问题: 第二个请求是重定向到登录页面,我们认为我们在上一步中设置了接收到的 cookie。

例子:

backend service running on https://<LOADBALANCER_URL>
Drill URL: http://<SOMEIP:PORT>/query.JSON 

这是因为 https 和 http 协议还是 diff 域?

请分享您的建议。

【问题讨论】:

您能否显示您在一个步骤中收到 cookie 的实际代码,然后在下一步中将该 cookie 发回? 【参考方案1】:

在负载均衡器的情况下,请求可能会发送到另一个在第一步中没有发出 cookie 的 Drillbit WebServer。在这种情况下它不起作用,你的负载均衡器应该有一些粘性会话的概念,或者每次都将请求从客户端发送到同一个 WebServer。

【讨论】:

以上是关于使用请求从 nodeJS 调用安全钻取 URL的主要内容,如果未能解决你的问题,请参考以下文章

服务请求事实和 SR 事实操作 - 如何切片和钻取

仅当从警报调用时,如何向第二个向下钻取View Controller添加按钮?

MDX 向下钻取查询生成

报表中如何实现中国地图钻取到各省地图

如何使用 Highcharter 创建两个独立的向下钻取图?

BI中的数据钻取是啥