IBM MobileFirst 7.0 - 如何禁用自动更新

Posted

技术标签:

【中文标题】IBM MobileFirst 7.0 - 如何禁用自动更新【英文标题】:IBM MobileFirst 7.0 - How to disable auto-update 【发布时间】:2016-02-10 16:27:19 【问题描述】:

我在 MobileFirst 应用程序中进行了更改,并将其部署到它要求“应用程序更新在 android 中可用”的移动设备上。如何禁用它。

这是我的 authenticationConfig.xml 文件:

    <?xml version="1.0" encoding="UTF-8"?>
    <tns:loginConfiguration xmlns:tns="http://www.worklight.com/auth/config" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
     <staticResources>
     <!--  
            <resource id="logUploadServlet" securityTest="LogUploadServlet">
            <urlPatterns>/apps/services/loguploader*</urlPatterns>
        </resource>
        -->
        <resource id="subscribeServlet" securityTest="SubscribeServlet">
            <urlPatterns>/subscribeSMS*;/receiveSMS*;/ussd*</urlPatterns>
        </resource>
    </staticResources>      
     <securityTests>
        <!-- 
        <mobileSecurityTest name="mobileTests">
            <testAppAuthenticity/> 
            <testDeviceId provisioningType="none" />
            <testUser realm="myMobileLoginForm" />
            <testDirectUpdate mode="disabled" />
        </mobileSecurityTest>

        <webSecurityTest name="webTests">
            <testUser realm="myWebLoginForm"/>
        </webSecurityTest>
        <customSecurityTest name="customTests">
            <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>
        <customSecurityTest name="LogUploadServlet">
            <test realm="wl_anonymousUserRealm" step="1"/>
            <test realm="LogUploadServlet" isInternalUserID="true"/>
        </customSecurityTest>
        -->
        <customSecurityTest name="SubscribeServlet">
            <test realm="SubscribeServlet" isInternalUserID="true"/>
        </customSecurityTest>           
     </securityTests> 
        <realms>
        <realm name="SampleAppRealm" loginModule="StrongDummy">
        <className>com.worklight.core.auth.ext.FormBasedAuthenticator</className>
        </realm>

        <realm name="SubscribeServlet" loginModule="rejectAll">
            <className>com.worklight.core.auth.ext.HeaderAuthenticator</className>          
        </realm>
                <!-- For client logger -->
        <!-- <realm name="LogUploadServlet" loginModule="StrongDummy">
            <className>com.worklight.core.auth.ext.HeaderAuthenticator</className>
        </realm -->

        <!-- For websphere -->
        <!-- realm name="WASLTPARealm" loginModule="WASLTPAModule">
            <className>com.worklight.core.auth.ext.WebSphereFormBasedAuthenticator</className>
            <parameter name="login-page" value="/login.html"/>
            <parameter name="error-page" value="/loginError.html"/>
        </realm -->

        <!-- For User Certificate Authentication -->
        <!-- realm name="wl_userCertificateAuthRealm" loginModule="WLUserCertificateLoginModule">
            <className>com.worklight.core.auth.ext.UserCertificateAuthenticator</className>
            <parameter name="dependent-user-auth-realm" value="WASLTPARealm" />
            <parameter name="pki-bridge-class" value="com.worklight.core.auth.ext.UserCertificateEmbeddedPKI" />
            <parameter name="embedded-pki-bridge-ca-p12-file-path" value="/opt/ssl_ca/ca.p12"/> 
            <parameter name="embedded-pki-bridge-ca-p12-password" value="capassword" />
        </realm -->

        <!-- For Trusteer Fraud Detection -->
        <!-- Requires acquiring Trusteer SDK --> 
        <!-- realm name="wl_basicTrusteerFraudDetectionRealm" loginModule="trusteerFraudDetectionLogin">
            <className>com.worklight.core.auth.ext.TrusteerAuthenticator</className>
            <parameter name="rooted-device" value="block"/>
            <parameter name="device-with-malware" value="block"/>
            <parameter name="rooted-hiders" value="block"/>
            <parameter name="unsecured-wifi" value="alert"/>
            <parameter name="outdated-configuration" value="alert"/>
        </realm -->

    </realms>

    <loginModules>
        <loginModule name="StrongDummy">
            <className>com.worklight.core.auth.ext.NonValidatingLoginModule</className>
        </loginModule>

        <loginModule name="requireLogin">
            <className>com.worklight.core.auth.ext.SingleIdentityLoginModule</className>
        </loginModule>

        <loginModule name="rejectAll">
            <className>com.worklight.core.auth.ext.RejectingLoginModule</className>
        </loginModule>

        <!-- Required for Trusteer - wl_basicTrusteerFraudDetectionRealm -->        
        <!-- loginModule name="trusteerFraudDetectionLogin">
            <className>com.worklight.core.auth.ext.TrusteerLoginModule</className>
        </loginModule-->

        <!-- For websphere -->
        <!-- loginModule name="WASLTPAModule">
            <className>com.worklight.core.auth.ext.WebSphereLoginModule</className>
        </loginModule -->

        <!-- Login module for User Certificate Authentication -->
        <!-- <loginModule name="WLUserCertificateLoginModule">
            <className>com.worklight.core.auth.ext.UserCertificateLoginModule</className>
        </loginModule> -->


        <!-- For enabling SSO with no-provisioning device authentication -->
        <!-- <loginModule name="MySSO" ssoDeviceLoginModule="WLDeviceNoProvisioningLoginModule">
            <className>com.worklight.core.auth.ext.NonValidatingLoginModule</className>
        </loginModule> -->


        <!-- For enabling SSO with auto-provisioning device authentication -->
        <!-- <loginModule name="MySSO" ssoDeviceLoginModule="WLDeviceAutoProvisioningLoginModule">
            <className>com.worklight.core.auth.ext.NonValidatingLoginModule</className>
        </loginModule> -->
    </loginModules>

</tns:loginConfiguration>

【问题讨论】:

【参考方案1】:

好吧,您可以轻松地“禁用自动更新”。试试这个方法

手机安全测试

如果在移动安全测试中未指定直接更新测试,则使用默认的perSession 模式启用它。要在移动安全测试中将直接更新模式更改为perRequest,请将带有mode="perRequest" 的直接更新测试添加到移动安全测试:&lt;testDirectUpdate mode="perRequest"/&gt;。要在移动安全测试中禁用直接更新,请将带有 mode="disabled" 的直接更新测试添加到移动安全测试:&lt;testDirectUpdate mode="disabled"/&gt;

自定义安全测试

要将直接更新测试添加到自定义安全测试,请将以下测试添加到安全测试:&lt;test realm="wl_directUpdateRealm"/&gt;。默认模式为perSession。要更改模式,请为模式属性指定一个值:&lt;test realm="wl_directUpdateRealm" mode="perRequest"/&gt;。要在自定义安全测试中禁用自动直接更新,请将模式设置为禁用或不添加具有直接更新领域的测试。

现在,重新构建项目并重新部署 .war 文件(本地服务器、生产服务器)以及使用更新的应用程序

更多信息https://www-01.ibm.com/support/knowledgecenter/SSHS8R_7.1.0/com.ibm.worklight.dev.doc/admin/c_direct_update_as_security_realm.html?lang=en

【讨论】:

【参考方案2】:

从 authenticationConfig.xml 中的安全测试中删除 Direct Update 安全测试。如果在非开发 (Studio/CLI) 环境中,请确保还重新构建项目并重新部署 .war 文件以及使用更新的应用程序。

【讨论】:

我更新了我的 authenticationConfig.xml 文件,你能告诉我我需要在哪里更改吗?

以上是关于IBM MobileFirst 7.0 - 如何禁用自动更新的主要内容,如果未能解决你的问题,请参考以下文章

我们如何跟踪从 IBM MobileFirst 7.0 发送到 Apple APNS 服务器的推送通知?

IBM MobileFirst 项目迁移 6.2.0.1 到 7.0

IBM MobileFirst 7.0 - 适配器调用

IBM MobileFirst 7.0,脱机工作示例应用程序不工作

无法构建 IBM MobileFirst Platform 7.0 java 适配器

iFix 之后的 IBM MobileFirst 7.0 Windows8 App 连接问题