禁用Worklight 6.2上的直接更新不起作用?

时间:2015-02-05 13:24:07

标签: android ibm-mobilefirst worklight-server

我在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>

但是应用程序在开始时仍会检查更新。模式已禁用似乎无效。

1 个答案:

答案 0 :(得分:3)

更新:我已经仔细检查了它,它运行正常。

我正在使用Worklight 6.2.0.01-20150102-1548
我采取的步骤:

  1. 创建了一个新项目和应用程序,并添加了Android环境
  2. 在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"/>
    
  3. 将安全测试应用于apps \ my-app \ application-descriptor.xml中的环境:

    <android version="1.0" securityTest="customTests">
            <test realm="wl_deviceNoProvisioningRealm" isInternalDeviceID="true" step="2"/>
        </customSecurityTest>
    
  4. wlCommonInit()

    中添加了常见的\ js \ main.js
    function wlCommonInit(){
        WL.Client.connect({onSuccess: function() {alert("success");}, onFailure: function() {alert("failure");}});
    }
    
  5. 运行方式&gt;在Worklight Development Server上运行

  6. Run As&gt; Android应用程序
  7. 应用程序已成功连接到服务器

    1. 更改了main.js以显示另一个提醒。退出应用程序并重新打开它
    2. 显示第二个警报。

      1. 将提醒文字更改为其他文字
      2. 在authenticationConfig.xml中将模式从perSession更改为disabled并保存文件
      3. 保存确保服务器将更改考虑在内 如果您使用的是远程服务器(而不是开发服务器),则必须重新部署.war和.wlapp文件才能应用更改(!)。

        1. 退出应用并重新打开它
        2. 未收到任何直接更新请求,并显示相同的上一个第二个警报文本。

          再次通过将模式从disabled更改回perSession进行验证。退出应用程序并重新打开它 - 然后在请求直接更新后显示更新的警报。


          以下安全测试名称告诉我,这是您对适配器过程进行的安全测试。

          <customSecurityTest name="AdapterSecurityTest">
          

          这不会使应用程序在应用程序启动时不接收直接更新 - 因为您没有将此安全测试放在环境上,因此它不会在启动时生效。您只将其放在适应性程序上(仅在WL.Client.invokeProcedure期间调用...)。

          您还必须保护环境本身。添加另一个自定义&#34; my-security-test&#34;并将其放在application-descriptor.xml

          中的环境节点上

          例如:

          <android version="1.0" securityTest="my-security-test">