Worklight 应用程序真实性在某些情况下失败
Worklight app authenticity is failing for some situations
我们正在使用 WL 企业版 (6.2.0.1) 修复包 1 开发 WL 应用程序。
我们在 3 个月前正确实施了 App 真实性并且一切正常(authenticationConfig.xml 上未进行任何更改)。
今天,我们所有的应用程序在两种环境(Dev、QA)的应用程序真实性上都失败了,WL 服务器上的错误:
[3/10/15 14:13:43:821 EDT] 000000d3 AuthenticityL I
com.worklight.core.auth.ext.appauth.AuthenticityLoginModuleImpl login FWLSE0127E:
Authenticity check failed for application 'APPNAME'. sharedData = ca.company.AppIDiPhone , challengeData = 514738N882129N341449C605766C744589X0355BCA6S214650C169432N928395XEDA8943BS085337C264942N797462X2B0C6AA2S462207X9035E6C7S . [project Name]
[3/10/15 14:13:43:853 EDT] 000000d3 LoginContext W com.worklight.core.auth.impl.LoginContext invokeLoginModule FWLSE0239W: Authentication failure in realm 'wl_authenticityRealm': login fail [project Name]
启动应用程序时出现错误且不一致,发生 (1/10) 次。
AuthenticationConfig.xml:
<securityTests>
<customSecurityTest name="CompanyTestmobile">
<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>
<webSecurityTest name="CompanyTest">
<testUser realm="CompanyRealm" />
</webSecurityTest>
<customSecurityTest name="SubscribeServlet">
<test realm="SubscribeServlet" isInternalUserID="true"/>
</customSecurityTest>
</securityTests>
应用-descriptor.xml(对于iPhone):
<iphone applicationId="AppID" bundleId="ca.company.AppIDiPhone" securityTest="CompanyTestMobile" version="1.0">
<worklightSettings include="false"/>
<security>
<encryptWebResources enabled="true"/>
<testWebResourcesChecksum enabled="true" ignoreFileExtensions="png, jpg, jpeg, gif, mp4, mp3"/>
</security>
</iphone>
我们所有的配置都匹配WL文档。
PS1:据我了解,appAuthenticity 会一直失败或根本不会失败。为什么它有时失败而其他时候工作。
PS2:我们服务器上的部署是不可触摸的,一旦部署就不能修改。这是对环境稳定和安全的确认。
谢谢。
从 PMR 来看,这似乎是由于应用程序代码同时调用适配器请求而触发的竞争条件而发生的,这导致真实性测试很少失败。
客户调整了他们的代码,以免导致无法再重现问题的竞争条件。
我们正在使用 WL 企业版 (6.2.0.1) 修复包 1 开发 WL 应用程序。
我们在 3 个月前正确实施了 App 真实性并且一切正常(authenticationConfig.xml 上未进行任何更改)。
今天,我们所有的应用程序在两种环境(Dev、QA)的应用程序真实性上都失败了,WL 服务器上的错误:
[3/10/15 14:13:43:821 EDT] 000000d3 AuthenticityL I
com.worklight.core.auth.ext.appauth.AuthenticityLoginModuleImpl login FWLSE0127E:
Authenticity check failed for application 'APPNAME'. sharedData = ca.company.AppIDiPhone , challengeData = 514738N882129N341449C605766C744589X0355BCA6S214650C169432N928395XEDA8943BS085337C264942N797462X2B0C6AA2S462207X9035E6C7S . [project Name]
[3/10/15 14:13:43:853 EDT] 000000d3 LoginContext W com.worklight.core.auth.impl.LoginContext invokeLoginModule FWLSE0239W: Authentication failure in realm 'wl_authenticityRealm': login fail [project Name]
启动应用程序时出现错误且不一致,发生 (1/10) 次。
AuthenticationConfig.xml:
<securityTests>
<customSecurityTest name="CompanyTestmobile">
<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>
<webSecurityTest name="CompanyTest">
<testUser realm="CompanyRealm" />
</webSecurityTest>
<customSecurityTest name="SubscribeServlet">
<test realm="SubscribeServlet" isInternalUserID="true"/>
</customSecurityTest>
</securityTests>
应用-descriptor.xml(对于iPhone):
<iphone applicationId="AppID" bundleId="ca.company.AppIDiPhone" securityTest="CompanyTestMobile" version="1.0">
<worklightSettings include="false"/>
<security>
<encryptWebResources enabled="true"/>
<testWebResourcesChecksum enabled="true" ignoreFileExtensions="png, jpg, jpeg, gif, mp4, mp3"/>
</security>
</iphone>
我们所有的配置都匹配WL文档。
PS1:据我了解,appAuthenticity 会一直失败或根本不会失败。为什么它有时失败而其他时候工作。
PS2:我们服务器上的部署是不可触摸的,一旦部署就不能修改。这是对环境稳定和安全的确认。
谢谢。
从 PMR 来看,这似乎是由于应用程序代码同时调用适配器请求而触发的竞争条件而发生的,这导致真实性测试很少失败。
客户调整了他们的代码,以免导致无法再重现问题的竞争条件。