gpt4 book ai didi

ibm-mobilefirst - 工作灯真实性

转载 作者:行者123 更新时间:2023-12-02 01:42:02 24 4
gpt4 key购买 nike

我们正在 Worklight 上开发一个混合应用程序,我们需要实现应用程序的真实性。我们将 Worklight Enterprise 版本 6.2.0.1 与 IBM 应用程序中心一起使用。但是,当我们在 Android 上启动应用程序时,我们在服务器日志中看到以下错误(iOS 也一样,但会提供 Android 日志)。

[1/19/15 15:25:05:388 EST] 00000254 WLNewAuthenti E com.worklight.core.auth.ext.appauth.WLNewAuthenticityScheme isInvalidAndroidParams FWLSE0260E:Android 真实性检查的 packageName 缺失或为空,无法测试真实性。如果 App Authentication 在 Worklight Console 中未设置为“已禁用”或“已启用,服务”,请求将失败。 [项目移动应用][1/19/15 15:25:05:388 EST] 00000254 WLNewAuthenti E com.worklight.core.auth.ext.appauth.WLNewAuthenticityScheme isInvalidAndroidParams FWLSE0260E:用于 android 真实性检查的 publicsigningkey 缺失或为空,无法测试真实性。如果 App Authentication 在 Worklight Console 中未设置为“已禁用”或“已启用,服务”,请求将失败。 [手机银行项目]。

authenticationConfig.xml 的安全测试是:

<securityTests>
<mobileSecurityTest name="MobileAppTestMobile">
<testAppAuthenticity/>
<testDeviceId provisioningType="auto" />
<testUser realm="MobileAppRealm" />
<testDirectUpdate mode="perSession" />
</mobileSecurityTest>

<webSecurityTest name="MobileAppTest">
<testUser realm="MobileAppRealm" />
</webSecurityTest>
<customSecurityTest name="SubscribeServlet">
<test realm="SubscribeServlet" isInternalUserID="true"/>
</customSecurityTest>

</securityTests>

应用程序描述符.xml:

<iphone bundleId="ca.company.MobileApp" securityTest="MobileAppTestMobile" version="1.0">
<worklightSettings include="false"/>
<security>
<encryptWebResources enabled="true"/>
<testWebResourcesChecksum enabled="true" ignoreFileExtensions="png, jpg, jpeg, gif, mp4, mp3"/>
</security>
</iphone>
<android securityTest="MobileAppTestMobile" version="1.0">
<worklightSettings include="false"/>
<security>
<encryptWebResources enabled="true"/>
<testWebResourcesChecksum enabled="true" ignoreFileExtensions="png, jpg, jpeg, gif, mp4, mp3"/>
<publicSigningKey>"We have added our public signing key here by extracting it from our keystore file"</publicSigningKey>
</security>
</android>

更新 WAR 文件后,我们从头开始部署了所有应用程序。worklight 控制台显示真实性的三个值“Disable - Enabled,serving - Enabled,Blocking”

当我们放置“启用,阻止”或“启用,服务”时,我们会在帖子顶部共享的服务器上获取错误日志。在应用程序屏幕上,我们收到错误消息“处理来自应用程序的请求时遇到错误”。

请指教。谢谢

最佳答案

问题已经解决。

解决方法:

1- 我们将 authenticationConfig.xml 中的 MobileSecurityTest 更改为 customSecurityTest,如下所示,并重新部署了 WAR 文件:

<customSecurityTest name="MobileSecurityTest">
<test realm="wl_antiXSRFRealm" step="1"/>
<test realm="wl_authenticityRealm" step="1"/>
<test realm="wl_remoteDisableRealm" step="1"/>
<test realm="wl_directUpdateRealm" mode="perSession" step="1"/>
<test realm="wl_anonymousUserRealm" isInternalUserID="true" step="1"/>
<test realm="wl_deviceNoProvisioningRealm" isInternalDeviceID="true" step="2"/>
</customSecurityTest>

2- 在 application-descriptor.xml 中:

对于 android,我使用了 Idan 所说的添加 <packageName>属性(property)。

<android securityTest="MobileSecurityTest" version="1.0">
<worklightSettings include="false"/>
<security>
<encryptWebResources enabled="true"/>
<testWebResourcesChecksum enabled="true" ignoreFileExtensions="png, jpg, jpeg, gif, mp4, mp3"/>
<publicSigningKey>"Our public signing Key placed here"</publicSigningKey>
<packageName>ca.company.MobileTest</packageName>
</security>
</android>

对于 iOS,问题出在 applicationId,我们认为 applicationId 值是 bundleId 的最后一部分,

例如:如果 bundleId 是“com.company.Myapp”,这意味着 applicaiotnId 是“Myapp”,这是不正确的。

这是不正确的定义:

<iphone bundleId="ca.company.MobileTestiPhone" applicationId="MobileTestiPhone" securityTest="MobileSecurityTest" version="1.0" >

applicationId 是 worklight.plist 文件中的值,该文件位于 iPhone 或 iPad native 文件夹中,此文件是在构建后生成的。对于我们的应用程序,它具有完全不同的值(value)。

正确的是:

<iphone bundleId="ca.company.MobileTestiPhone" applicationId="MobileTest" securityTest="MobileSecurityTest" version="1.0" >

这就是为什么当我们将应用程序真实性值设置为“启用,阻止”时,该应用程序被我们的 WL 服务器阻止的原因。

感谢@Idan 的帮助。

关于ibm-mobilefirst - 工作灯真实性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28033111/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com