1

Salesforce.com への単純なクエリで動作する Cast Iron Live インスタンスがあります。ブラウザまたは curl で URL を入力すると、期待どおりの応答が返されます。

IBM Worklight アダプターで同じ URL に相当するものを呼び出そうとすると、サーバーから継続的に 401 Unauthorized HTML 応答が返されます。

Worklight が送信している実際のリクエストの詳細なログを探しましたが、うまくいきませんでした。また、Wireshark をインストールし、URL またはヘッダーが表示されることを期待して接続を盗聴しましたが、それらはペイロードと共に暗号化されています。手掛かりとして Worklight Server JavaScript ソースも調べましたが、実際の作業のほとんどは Java クラス・ファイルで行われます。

これが私の作業中の Cast Iron の URL です (詳細は匿名化され、すべて 1 行で記述されています): https://eval-provide.castiron.com/envq/Development/getProducer ? ciUser=admin@mydomain.com&ciPassword=My@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 で使用した完全な文字列へのパスをハードコーディングしようとしました (もちろん、すべて 1 行で):

path : '/envq/Development/getProducer? 
        ciUser=admin@mydomain.com&ciPassword=My@ss4d!',

Cast Iron Live および Worklight を認証するには、何をする必要がありますか?

4

1 に答える 1

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);
于 2013-03-28T03:12:39.190 に答える