在 Worklight 6.2 上禁用直接更新不起作用?
Disable direct update on Worklight 6.2 doesn't working?
我在 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
我采取的步骤:
- 创建了一个新项目和应用程序,并添加了 Android 环境
在 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>
在common\js\main.js中添加,在wlCommonInit()
中添加:
function wlCommonInit(){
WL.Client.connect({onSuccess: function() {alert("success");}, onFailure: function() {alert("failure");}});
}
运行 作为 > 运行 在 Worklight Development Server
- 运行 作为 > Android 应用程序
应用成功连接到服务器
- 已更改 main.js 以显示另一个警报。退出应用程序并重新打开它
显示了第二个警报。
- 将警报文本更改为其他文本
- 在 authenticationConfig.xml 中将模式从
perSession
更改为 disabled
并保存文件
保存确保服务器将更改考虑在内。
如果您使用的是远程服务器(而不是开发服务器),您必须重新部署 .war 和 .wlapp 文件才能应用更改(!)。
- 退出应用程序并重新打开
没有收到直接更新请求,并且显示了与之前相同的第二个警报文本。
也通过将模式从 disabled
改回 perSession
再次验证。退出应用程序并重新打开它 - 在请求直接更新后会显示更新的警报。
以下安全测试名称向我暗示这是您对适配器程序进行的安全测试。
<customSecurityTest name="AdapterSecurityTest">
这不会使应用程序在应用程序启动时不接收直接更新 - 因为您没有在 环境 上进行此安全测试,因此它不会在启动。您只将它放在 adapt 过程中(仅在 WL.Client.invokeProcedure
... 期间调用)。
您还必须保护环境本身。再添加一个自定义的"my-security-test"放在application-descriptor.xml
中的environment节点上
例如:
<android version="1.0" securityTest="my-security-test">
我在 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
我采取的步骤:
- 创建了一个新项目和应用程序,并添加了 Android 环境
在 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>
在common\js\main.js中添加,在
wlCommonInit()
中添加:function wlCommonInit(){ WL.Client.connect({onSuccess: function() {alert("success");}, onFailure: function() {alert("failure");}}); }
运行 作为 > 运行 在 Worklight Development Server
- 运行 作为 > Android 应用程序
应用成功连接到服务器
- 已更改 main.js 以显示另一个警报。退出应用程序并重新打开它
显示了第二个警报。
- 将警报文本更改为其他文本
- 在 authenticationConfig.xml 中将模式从
perSession
更改为disabled
并保存文件
保存确保服务器将更改考虑在内。
如果您使用的是远程服务器(而不是开发服务器),您必须重新部署 .war 和 .wlapp 文件才能应用更改(!)。
- 退出应用程序并重新打开
没有收到直接更新请求,并且显示了与之前相同的第二个警报文本。
也通过将模式从 disabled
改回 perSession
再次验证。退出应用程序并重新打开它 - 在请求直接更新后会显示更新的警报。
以下安全测试名称向我暗示这是您对适配器程序进行的安全测试。
<customSecurityTest name="AdapterSecurityTest">
这不会使应用程序在应用程序启动时不接收直接更新 - 因为您没有在 环境 上进行此安全测试,因此它不会在启动。您只将它放在 adapt 过程中(仅在 WL.Client.invokeProcedure
... 期间调用)。
您还必须保护环境本身。再添加一个自定义的"my-security-test"放在application-descriptor.xml
中的environment节点上例如:
<android version="1.0" securityTest="my-security-test">