我正在尝试使用HeaderLoginModule和HeaderAuthenticator来修改示例项目,以保护适配器,然后通过设置标头和使用WLResourceRequest JavaScript API从示例项目中调用适配器函数。我相信根据我的loginModule配置,我在哪里设置一个user-name-header值,并在WLResourceRequest的头文件中设置它然后调用send(),这应该提供用户对象,然后是适配器应该是可访问的。出于某种原因,虽然我仍然得到500并且日志显示401 /未授权。
以下是我用于设置此示例的步骤:
1)git在https://github.com/MobileFirst-Platform-Developer-Center/Cordova
克隆Cordova示例项目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);
}
**我将在上面说,我无法判断是否从文档中添加了Header或setHeader。我分别尝试了两个,然后两个在一起。它们似乎是通过查看对getHeaders()的调用来设置的。
感谢任何帮助,在我推送RSSAdapter项目(MFP)和Cordova项目(app)之后,在点击应用程序中的适配器按钮时,弄清楚为什么这仍然是401 / Unauthorized。