Production MobileFirst 7 Server 从 Worklight 6.2 升级,适配器调用不工作

Production MobileFirst 7 Server upgrade from Worklight 6.2, Adapter call not working

我们有一个可与 Worklight 6.2 服务器配合使用的 MobileFirst 应用程序 - 也适用于生产环境。我们正在使用 http 适配器:<connectionPolicy xsi:type="http:HTTPConnectionPolicyType">

目前我们正在将生产服务器更改为 7.0.0。在开发服务器上,我们可以测试我们的应用程序,所有功能都正常。我们在构建配置中使用生产服务器创建了 .war 并与 android .wlapp 一起上传。现在,当应用程序尝试调用生产服务器上的任何适配器函数时,我们会收到 404。 invokeProcedure onFailure returns UNEXPECTED_ERROR。这是:

我们没有在应用程序中启用安全性。 是否必须在服务器上启用某些功能才能允许旧类型适配器调用?
当我们使用升级后的 MobileFirst Development Studio 7.0.0.00.20150430 作为开发平台进行测试时 - 相同的服务器版本,我们得到相同的 404(未找到上下文),但尝试连接 authorization/v1/clients/instance 而不是 /apps/services/api/XXXXX/android/query

服务器升级是否可以解决这个问题?我们注意到有可用的更新。

服务器在 https 连接上,但在 WL 6.2 上是相同的。

根据评论中的描述和提供的 messages.log,很明显您正在尝试使用应用程序真实性保护。

此功能在 v6.2 中以特定方式工作,在 v6.3 及更高版本中以不同方式工作。
从评论看来,您只是添加了 publickSigningKey - 这已经不够了。

请参阅更新的应用程序真实性保护教程以了解要遵循的步骤:https://developer.ibm.com/mobilefirstplatform/documentation/getting-started-7-0/authentication-security/application-authenticity-protection/

要遵循的一般步骤:

  1. 使用安全测试
  2. 设置authenticationConfig.xml
  3. 在application-descriptor.xml
  4. 的环境节点中添加安全测试
  5. 将 publicSigningKey 添加到 <publicSigningKey> 元素
  6. 添加应用包名<packageName>元素

我相信你错过了第 4 步。
请注意,您现在还可以启用扩展真实性模式;按照教程中的说明进行操作。

关于第 3 步的注意事项:显然,当您导出已签名的 .apk 文件时,必须使用用于生成 publicSigningKey 的相同密钥库...否则将出现不匹配并且真实性挑战将失败。


在你的 authenticationConfig.xml 中,确保你有可用的 securityTest(= 没有 像你在下面的评论中提供的文件一样被注释掉。

在您的应用程序 -descriptor.xml 中,您缺少 Android 环境元素中的 securityTest 属性:<android version="0.9.9"> 更改为 <android version="0.9.9" securityTest="customTests">