使用MobileFirst Cordova项目的标头身份验证 - 401 /未经授权

时间:2016-01-18 02:56:27

标签: ibm-mobilefirst mobilefirst-adapters mobilefirst-cli

我正在尝试使用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。

0 个答案:

没有答案