我们正在使用WL enterprise ver(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>
Application-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:我们服务器上的部署无法触及,部署后无法修改。这是对环境稳定和安全的确认。
谢谢。
答案 0 :(得分:0)
从PMR开始,这似乎是由于应用程序代码同时调用适配器请求而触发的竞争条件,这导致了真实性测试的不常见失败。
客户调整了他们的代码,以免造成竞争条件,之后无法再复制该问题。