2013-03-27 2 views
1

У меня есть экземпляр Cast Iron Live, который работает с простым запросом Salesforce.com. Когда я ввожу URL-адрес в своем браузере или через завиток, я получаю ожидаемый ответ.IBM Worklight invokeCastIron не может подключиться к экземпляру Cast Iron Live

Когда я пытаюсь вызвать эквивалент того же URL-адреса в адаптере IBM Worklight, сервер постоянно возвращается с ответом 401 Unauthorized HTML.

Я искал более подробные журналы фактического запроса. Рабочий свет отправляется без везения. Я также установил Wireshark и понюхал мое соединение в надежде, что я смогу увидеть URL-адрес или заголовки, но они зашифрованы вместе с полезной нагрузкой. Я также посмотрел на источник JavaScript сервера Worklight для подсказок, но большая часть реальной работы выполняется в файлах классов Java.

Вот мой рабочий URL чугуна (специфика анонимная, все в одной строке): 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); 
} 

APPNAME и ТипЗапрос, кажется, игнорируются. Я пробовал это с ними и без них.

Я также не попытался с помощью параметров и жестко прописывать путь к полной строки, я использовал в URL, то есть (все в одной строке, конечно):

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

Что мне нужно сделать чтобы получить литой чугун Live и Worklight для аутентификации?

ответ

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); 
+0

Вот что мне нужно! Чугун требует базового auth в заголовках в формате base64. В частности, строка Base 64 должна быть в формате username: password. Как только я это сделал и перестроил мой адаптер, он сработал. Большое спасибо за Вашу помощь! – user2217751