我在worklight 6.2上部署了应用程序,我想禁用authenticationConfig.xml中的直接更新。 我的customSecurityTest看起来像这样:
<customSecurityTest name="SubscribeServlet">
<test realm="wl_directUpdateRealm" mode="disabled" step="0"/>
<test isInternalUserID="true" realm="SubscribeServlet" />
</customSecurityTest>
<customSecurityTest name="AdapterSecurityTest">
<test realm="wl_directUpdateRealm" mode="disabled" step="0"/>
<test isInternalUserID="true" realm="AdapterAuthRealm" />
</customSecurityTest>
但是应用程序在开始时仍会检查更新。模式已禁用似乎无效。
答案 0 :(得分:3)
更新:我已经仔细检查了它,它运行正常。
我正在使用Worklight 6.2.0.01-20150102-1548
我采取的步骤:
在server \ conf \ authenticationConfig.xml中添加了以下自定义安全测试:
<customSecurityTest name="customTests">
<test realm="wl_antiXSRFRealm" step="1"/>
<test realm="wl_remoteDisableRealm" step="1"/>
<test realm="wl_directUpdateRealm" mode="perSession" step="1"/>
<test realm="wl_anonymousUserRealm" isInternalUserID="true" step="1"/>
将安全测试应用于apps \ my-app \ application-descriptor.xml中的环境:
<android version="1.0" securityTest="customTests">
<test realm="wl_deviceNoProvisioningRealm" isInternalDeviceID="true" step="2"/>
</customSecurityTest>
在wlCommonInit()
:
function wlCommonInit(){
WL.Client.connect({onSuccess: function() {alert("success");}, onFailure: function() {alert("failure");}});
}
运行方式&gt;在Worklight Development Server上运行
应用程序已成功连接到服务器
显示第二个警报。
perSession
更改为disabled
并保存文件保存确保服务器将更改考虑在内 如果您使用的是远程服务器(而不是开发服务器),则必须重新部署.war和.wlapp文件才能应用更改(!)。
未收到任何直接更新请求,并显示相同的上一个第二个警报文本。
再次通过将模式从disabled
更改回perSession
进行验证。退出应用程序并重新打开它 - 然后在请求直接更新后显示更新的警报。
以下安全测试名称告诉我,这是您对适配器过程进行的安全测试。
<customSecurityTest name="AdapterSecurityTest">
这不会使应用程序在应用程序启动时不接收直接更新 - 因为您没有将此安全测试放在环境上,因此它不会在启动时生效。您只将其放在适应性程序上(仅在WL.Client.invokeProcedure
期间调用...)。
您还必须保护环境本身。添加另一个自定义&#34; my-security-test&#34;并将其放在application-descriptor.xml
中的环境节点上例如:
<android version="1.0" securityTest="my-security-test">