MobileFirst 8.0 - 从 WLResourceRequest 调用受保护的适配器

Posted

技术标签:

【中文标题】MobileFirst 8.0 - 从 WLResourceRequest 调用受保护的适配器【英文标题】:MobileFirst 8.0 - call protected adapter from WLResourceRequest 【发布时间】:2016-11-08 14:11:09 【问题描述】:

我尝试在 MFP 8.0 cordova 应用程序(还安装了 mfp 插件)中调用受保护的 javascript 资源适配器,但没有设置任何特定的安全性。下面使用的配置:

adapter.xml

<?xml version="1.0" encoding="UTF-8"?>
<mfp:adapter name="AccountAdapter"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xmlns:mfp="http://www.ibm.com/mfp/integration"
         xmlns:http="http://www.ibm.com/mfp/integration/http">

<displayName>AccountAdapter</displayName>
<description>AccountAdapter</description>
<connectivity>
    <connectionPolicy xsi:type="http:HTTPConnectionPolicyType">
        <protocol>https</protocol>
        <domain>mobilefirstplatform.ibmcloud.com</domain>
        <port>443</port>
        <connectionTimeoutInMilliseconds>30000</connectionTimeoutInMilliseconds>
        <socketTimeoutInMilliseconds>30000</socketTimeoutInMilliseconds>
        <maxConcurrentConnectionsPerNode>50</maxConcurrentConnectionsPerNode>
    </connectionPolicy>
</connectivity>

<procedure name="getUser"/>

javascript 应用代码

var resourceRequest = new WLResourceRequest("adapters/AccountAdapter/getUser", WLResourceRequest.GET);
        resourceRequest.setQueryParameter("params", "[1]");
        resourceRequest.send().then(success, loadFailure);

但反应是

worklight.js:10192 GET http://localhost:6015/mfp/api/adapters/AccountAdapter/getUser?params=%5B1%5D 401 (Unauthorized)

测试是在移动浏览器模拟器中进行的,适用于 ios 平台。

我记得在以前版本的 MFP 中,对适配器的调用会自动协商令牌以访问受保护的资源。

在没有复杂的授权过程的情况下仍然可以这样做吗?

如果不是,调用受保护资源需要什么?

【问题讨论】:

【参考方案1】:

请阅读有关安全性的文档:https://mobilefirstplatform.ibmcloud.com/tutorials/en/foundation/8.0/authentication-and-security/#disabling-protection

您是否尝试过禁用安全性? 在 JavaScript 适配器中添加 secured 属性并将其值设置为 false

例如:

<procedure name="deleteUser" secured="false">

【讨论】:

是的,我做到了,而且成功了……但这不是我想做的。在 MFP 7.1 中,我在没有指定属性“wl_unprotected”的情况下调用了适配器,并且框架自动协商了用于过程调用的令牌......这种方法仍然有效吗? 没有。您需要阅读 v8.0 中的安全框架。它已经改变了。 好的。我遵循此链接mobilefirstplatform.ibmcloud.com/tutorials/en/foundation/8.0/… 上提供的文档部分,因为我想在不配置复杂安全检查的情况下保护资源,但它不起作用。我无法理解它是如何工作的。你能举个例子吗?

以上是关于MobileFirst 8.0 - 从 WLResourceRequest 调用受保护的适配器的主要内容,如果未能解决你的问题,请参考以下文章

Mobilefirst 8.0 推送通知 API - 推送设备注册 (POST)

无法安装应用程序,因为证书在带有 MobileFIrst 8.0 的 iOS10.3.3 中无效

Mobilefirst 8.0 推送通知

Mobilefirst 8.0 Java 适配器 SSL

IBM MobileFirst 8.0 Neon 插件

下载更新后 MobileFirst 8.0 直接更新失败