IBM Worklight invokeCastIron无法连接到Cast Iron Live实例

时间:2013-03-27 23:18:02

标签: ibm-mobilefirst

我有一个使用简单查询到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进行身份验证,我需要做些什么?

1 个答案:

答案 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);