我有一个使用简单查询到Salesforce.com的Cast Iron Live实例。当我在浏览器中输入URL或通过卷曲时,我得到了预期的响应。
当我尝试在IBM Worklight适配器中调用相同的URL时,服务器会不断返回401 Unauthorized HTML响应。
我已经查找了Worklight发送的实际请求的更详细日志,没有运气。我还安装了Wireshark并嗅探了我的连接,希望我能看到URL或标题,但它们与有效负载一起被加密。我还查看了Worklight Server JavaScript源代码的线索,但大多数实际工作都是在Java类文件中完成的。
这是我的工作Cast Iron URL(匿名的细节,全部在一行): https://eval-provide.castiron.com/envq/Development/getProducer? ciUser=admin@mydomain.com&!ciPassword =我@ ss4d
这是我的适配器代码(再次,匿名): function getProducers(){
var input = {
method : 'get',
appName : 'producers'
requestType: 'https',
path: '/envq/Development/getProducer',
parameters: {
ciUser: 'admin@mydomain.com',
ciPassword: 'My@ss4d!'
},
returnedContentType : 'xml'
};
return WL.Server.invokeCastIron(input);
}
appName和requestType似乎被忽略了。我和他们一起尝试过,没有他们。
我也尝试过不使用参数并将路径硬编码到我在URL中使用的完整字符串,即(当然所有在一行上):
path : '/envq/Development/getProducer?
ciUser=admin@mydomain.com&ciPassword=My@ss4d!',
要让Cast Iron Live和Worklight进行身份验证,我需要做些什么?
答案 0 :(得分:2)
如果您的Cast Iron实例受基本身份验证保护,您需要以bas64格式传递用户名和密码,如下所示:
var input = {
method : 'get',
appName : 'myApp',
headers: {Authorization: "Basic YWRtaW5Ad29ya2xpZ2h0LmlibTpjaGFuZ2VJdCE="},
path : '/env/Development/'+orchestrationName,
returnedContentType : 'json'
};
return WL.Server.invokeCastIron(input);