HeaderLoginModule と HeaderAuthenticator を使用してアダプターを保護し、ヘッダーを設定して WLResourceRequest JavaScript API を使用してサンプル プロジェクトからアダプター関数を呼び出す、変更されたサンプル プロジェクトを取得しようとしています。user-name-header 値を設定し、これを WLResourceRequest のヘッダーに設定してから send() を呼び出す loginModule の構成に基づいて、これはユーザー オブジェクトとアダプターを提供する必要があると思いますアクセスできる必要があります。何らかの理由で、まだ 500 が返され、ログには 401/unauthorized と表示されます。
このサンプルをセットアップするために使用した手順は次のとおりです。
1) https://github.com/MobileFirst-Platform-Developer-Center/Cordovaで Cordova サンプル プロジェクトを git clone します。
2) 次のセクションを authenticationConfig.xml に追加しました (適切なセクション内)。
<loginModule name="HeaderLoginModule" audit="true">
<className>com.worklight.core.auth.ext.HeaderLoginModule</className>
<parameter name="user-name-header" value="plentyid"/>
<parameter name="display-name-header" value="customername"/>
</loginModule>
<realm name="MyRealm" loginModule="HeaderLoginModule">
<className>com.worklight.core.auth.ext.HeaderAuthenticator</className>
</realm>
<mobileSecurityTest name="MyMobileSecurityTest">
<testUser realm="MyRealm" />
<testDeviceId provisioningType="none" />
</mobileSecurityTest>
3) アダプタ XML ファイルのこの行を変更して、セキュリティ テストでアダプタを保護します。
<procedure name="getFeed" securityTest="MyMobileSecurityTest"/>
4) getRSSFeed 関数を次のように変更
getRSSFeed: function(){
var resourceRequest = new WLResourceRequest(
"/adapters/RSSAdapter/getFeed",
WLResourceRequest.GET);
resourceRequest.addHeader("plentyid","1234");
resourceRequest.addHeader("customername","John Smith");
resourceRequest.setHeader("plentyid","1234");
resourceRequest.setHeader("customername","John Smith");
WL.Logger.info(resourceRequest.getHeaders());
resourceRequest.send().then(app.getRSSFeedSuccess,app.getRSSFeedError);
}
** 上記で、ドキュメントから addHeader と setHeader のどちらを使用するかわかりませんでした。両方を別々に試してから、両方を一緒に試しました。getHeaders() の呼び出しを見ると設定されているようです。
RSSAdapter プロジェクト (MFP) と Cordova プロジェクト (アプリ) の両方を mfp プッシュした後、アプリの [アダプター] ボタンをクリックすると、これがまだ 401/Unauthorized である理由を突き止めてくれてありがとう。