Ibm mobilefirst IBM Worklight invokeCastIron can';t连接到铸铁活实例
我有一个Cast Iron Live实例,用于对Salesforce.com进行简单查询。当我在浏览器中或通过curl输入URL时,我会得到预期的响应 当我尝试在IBM Worklight适配器中调用相同URL的等效项时,服务器不断返回401个未经授权的HTML响应 我已经查找了Worklight正在发送的实际请求的更详细的日志,但运气不好。我还安装了Wireshark并嗅探了我的连接,希望能看到URL或标题,但它们与有效负载一起被加密。我还查看了Worklight Server JavaScript源代码以寻找线索,但大部分实际工作都是在Java类文件中完成的 以下是我的工作铸铁URL(细节匿名,全部在一行上): ? ciUser=admin@mydomain.com&密码=My@ss4d! 这是我的适配器代码(再次匿名): 函数getProducers(){ appName和requestType似乎被忽略了。我试过使用它们,也试过不使用它们 我还尝试过不使用参数,并对URL中使用的完整字符串的路径进行硬编码,即(当然全部在一行上):Ibm mobilefirst IBM Worklight invokeCastIron can';t连接到铸铁活实例,ibm-mobilefirst,Ibm Mobilefirst,我有一个Cast Iron Live实例,用于对Salesforce.com进行简单查询。当我在浏览器中或通过curl输入URL时,我会得到预期的响应 当我尝试在IBM Worklight适配器中调用相同URL的等效项时,服务器不断返回401个未经授权的HTML响应 我已经查找了Worklight正在发送的实际请求的更详细的日志,但运气不好。我还安装了Wireshark并嗅探了我的连接,希望能看到URL或标题,但它们与有效负载一起被加密。我还查看了Worklight Server JavaScr
要让Cast Iron Live和Worklight进行身份验证,我需要做什么?如果您的Cast Iron实例受basic auth保护,您需要以bas64格式传递用户名和密码,如下所示:
var input = {
method : 'get',
appName : 'myApp',
headers: {Authorization: "Basic YWRtaW5Ad29ya2xpZ2h0LmlibTpjaGFuZ2VJdCE="},
path : '/env/Development/'+orchestrationName,
returnedContentType : 'json'
};
return WL.Server.invokeCastIron(input);
这正是我所需要的!Cast Iron要求在标题中使用base64格式的basic auth。具体来说,Base 64字符串必须是用户名:密码格式。一旦我这样做并重建了适配器,它就可以工作了。非常感谢您的帮助!
path : '/envq/Development/getProducer?
ciUser=admin@mydomain.com&ciPassword=My@ss4d!',
var input = {
method : 'get',
appName : 'myApp',
headers: {Authorization: "Basic YWRtaW5Ad29ya2xpZ2h0LmlibTpjaGFuZ2VJdCE="},
path : '/env/Development/'+orchestrationName,
returnedContentType : 'json'
};
return WL.Server.invokeCastIron(input);