gpt4 book ai didi

android - 在 Worklight 6.2 上禁用直接更新不起作用?

转载 作者:行者123 更新时间:2023-11-29 17:42:00 31 4
gpt4 key购买 nike

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

但应用程序在启动时仍会检查更新。 禁用 模式似乎不起作用。

最佳答案

更新:我已经仔细检查过,它工作正常。

我使用的是 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. 在common\js\main.js中添加,在wlCommonInit()中:

    function wlCommonInit(){
    WL.Client.connect({onSuccess: function() {alert("success");}, onFailure: function() {alert("failure");}});
    }
  5. 运行方式 > 在 Worklight Development Server 上运行

  6. 运行方式 > Android 应用

应用成功连接到服务器

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

显示了第二个警报。

  1. 将警告文本更改为其他文本
  2. 在 authenticationConfig.xml 中将模式从 perSession 更改为 disabled 并保存文件

保存确保服务器将更改考虑在内。
如果您使用的是远程服务器(而不是开发服务器),您必须重新部署 .war 和 .wlapp 文件才能应用更改(!)。

  1. 退出并重新打开应用

没有收到直接更新请求,并且显示了与之前相同的第二个警报文本。

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


以下安全测试名称向我暗示这是您对适配器过程进行的安全测试。

<customSecurityTest name="AdapterSecurityTest">

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

您还必须保护环境本身。添加另一个自定义“my-security-test”并将其放在application-descriptor.xml 中的环境节点上

例如:

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

关于android - 在 Worklight 6.2 上禁用直接更新不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28345106/

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