我们有一个可与Worklight 6.2服务器一起使用的MobileFirst应用程序。我们使用的是http适配器:<connectionPolicy xsi:type="http:HTTPConnectionPolicyType">
目前我们正在将生产服务器更改为7.0.0。在Development Server上,我们可以测试我们的应用程序,所有功能都可以。我们在构建配置上使用生产服务器创建了.war,并与android .wlapp一起上传。现在,当应用程序尝试调用生产服务器上的任何适配器函数时,我们会收到404 invokeProcedure onFailure返回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上是相同的。
答案 0 :(得分:1)
根据评论和提供的messages.log中的描述,您显然正在尝试使用应用程序真实性保护。
此功能在v6.2中以某种方式工作,并且在v6.3及更高版本中以不同的方式工作
从评论中看,您只是添加了publickSigningKey
- 这已经不够了。
请参阅更新的应用程序真实性保护教程,了解要遵循的步骤:https://developer.ibm.com/mobilefirstplatform/documentation/getting-started-7-0/authentication-security/application-authenticity-protection/
要遵循的一般步骤:
<publicSigningKey>
元素<packageName>
元素我相信你错过了第4步。
请注意,您现在还可以启用扩展真实性模式;按照教程中的说明进行操作。
注意步骤3:显然,在导出签名的.apk文件时,必须使用用于生成publicSigningKey的相同密钥库...否则将出现不匹配,并且真实性质询将失败。
在您的authenticationConfig.xml中,确保您可以使用securityTest(= not 注释掉,就像您在下面的评论中提供的文件一样。
在您的application-descriptor.xml中,您缺少Android环境元素中的securityTest属性:<android version="0.9.9">
更改为<android version="0.9.9" securityTest="customTests">