2013-03-27 66 views
1

我有一個Cast Iron Live實例,它使用對Salesforce.com的簡單查詢。當我在瀏覽器中輸入URL或通過curl時,我會收到預期的響應。IBM Worklight invokeCastIron無法連接到Cast Iron Live實例

當我嘗試調用IBM Worklight適配器中相同URL的等效項時,服務器不斷返回401 Unauthorized HTML響應。

我查找了實際請求的更詳細的日誌Worklight正在發送,但沒有運氣。我還安裝了Wireshark並嗅探了我的連接,希望能夠看到URL或標頭,但是它們與有效負載一起被加密。我還查看了Worklight Server JavaScript源代碼的線索,但大部分實際工作都是在Java類文件中完成的。

這是我的鑄鐵網址(具體匿名,全部在一行上): https://eval-provide.castiron.com/envq/Development/getProducer[email protected] & ciPassword = My @ ss4d!

這裏是我的適配器代碼(同樣,匿名): 功能getProducers(){

var input = { 
     method : 'get', 
     appName : 'producers' 
     requestType: 'https', 
     path: '/envq/Development/getProducer', 
     parameters: { 
      ciUser:  '[email protected]', 
      ciPassword: '[email protected]!' 
     }, 
     returnedContentType : 'xml'  
}; 
return WL.Server.invokeCastIron(input); 
} 

應用程序的名字和請求類型似乎被忽略。我已經試過了,沒有它們。

我也試着不使用的參數和硬編碼的路徑,我在URL,即(有關課程的一行)使用完整的字符串:

path : '/envq/Development/getProducer? 
     [email protected]&[email protected]!', 

什麼我需要做的讓Cast Iron Live和Worklight進行身份驗證?

回答

2

如果你的鑄鐵例如是由基本身份驗證保護,則需要通過用戶名和密碼在其bas64格式是這樣的:

var input = { 
      method : 'get', 
      appName : 'myApp', 
      headers: {Authorization: "Basic YWRtaW5Ad29ya2xpZ2h0LmlibTpjaGFuZ2VJdCE="}, 
      path : '/env/Development/'+orchestrationName,   
      returnedContentType : 'json' 

    }; 
    return WL.Server.invokeCastIron(input); 
+0

這就是我需要的東西! Cast Iron需要base64格式的標題中的基本身份驗證。具體來說,Base 64字符串必須使用用戶名:密碼格式。一旦我做到了這一點,並重建我的適配器它的工作。非常感謝你的幫助! – user2217751 2013-03-28 14:33:09