首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >未知挑战到达,无法处理域wl_deviceNoProvisioningRealm挑战

未知挑战到达,无法处理域wl_deviceNoProvisioningRealm挑战
EN

Stack Overflow用户
提问于 2014-11-17 14:43:19
回答 2查看 499关注 0票数 0

在Enterprise服务器中部署我的Worklight (v6.2.0.01)应用程序后,我将面临以下问题。这个问题只表现在移动web应用环境中。

值得注意的是,同一应用程序在相同的环境中运行良好,在本地开发服务器(也基于Worklight 6.2.0.01)。

控制台错误:

代码语言:javascript
复制
[Error] unknown challenge arrived, cannot process realm wl_deviceNoProvisioningRealm challenge.
    __log (worklight.js, line 4879)
    (anonymous function) (worklight.js, line 5237)
    executeChallenge (worklight.js, line 8783)
    checkResponseForChallenges (worklight.js, line 8692)
    onWlFailure (worklight.js, line 3411)
    (anonymous function) (worklight.js, line 950)
    respondToReadyState (worklight.js, line 1172)
    onStateChange (worklight.js, line 1105)
    (anonymous function) (worklight.js, line 950)

屏幕错误:

处理来自应用程序的请求时遇到错误。

authenticationConfig.xml:

代码语言:javascript
复制
    <!-- Licensed Materials - Property of IBM
         5725-I43 (C) Copyright IBM Corp. 2006, 2013. All Rights Reserved.
         US Government Users Restricted Rights - Use, duplication or
         disclosure restricted by GSA ADP Schedule Contract with IBM Corp. -->  

 <staticResources>
    <resource id="subscribeServlet" securityTest="SubscribeServlet">
        <urlPatterns>/subscribeSMS*;/receiveSMS*;/ussd*</urlPatterns>
    </resource>

</staticResources> 
代码语言:javascript
复制
 <securityTests>
    <mobileSecurityTest name="SampleApp">
        <testDeviceId provisioningType="none" />
        <testUser realm="SampleAppRealm" />
        <testDirectUpdate mode="perSession" />
    </mobileSecurityTest>

    <customSecurityTest name="SubscribeServlet">
        <test realm="SubscribeServlet" isInternalUserID="true"/>
    </customSecurityTest>           

</securityTests> 

<realms>
    <realm loginModule="SampleAppLoginModule" name="SampleAppRealm">
        <className>com.worklight.integration.auth.AdapterAuthenticator</className>
        <parameter name="login-function" value="AuthenticationAdapter.onAuthRequired" />
        <parameter name="logout-function" value="AuthenticationAdapter.onLogout" />
    </realm>

    <!-- <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="SampleAppModule">
        <className>com.worklight.core.auth.ext.NonValidatingLoginModule</className>
    </loginModule>

    <!-- <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>

EN

回答 2

Stack Overflow用户

发布于 2014-11-17 17:36:02

您已经提到您的应用程序在移动web应用程序环境中使用。在此环境中,应用程序是从Worklight Server提供的,并使用操作系统的移动浏览器应用程序(mobile、mobile等)显示。

您所得到的错误中提到的wl_deviceNoProvisioningRealm测试是为了用于https://www.ibm.com/developerworks/community/blogs/worklight/entry/understanding_predefined_worklight_authentication_realms_and_security_tests11?lang=en,而不是在移动web应用程序中。

在您的例子中,您使用的是预定义的mobileSecurityTest。此预定义的安全测试默认检查用于wl_deviceNoProvisioningRealm

虽然我不清楚你为什么要以你描述的方式得到这个错误,但我认为你应该做的是:

  • 或者使用预定义的webSecurityTest代替,因为它不包括wl_deviceNoProvisioningRealm,并且适合于web环境,比如您的应用程序.
  • 或者创建自定义安全测试。 如果选择创建自定义安全测试(例如"myMobileWebAppEnv“),请确保它不包含wl_deviceNoProvisioningRealm测试。然后,在应用程序描述符. app中,您需要将其专门应用于移动web应用程序环境元素。

了解有关安全测试的更多信息,请参见:了解预定义的Worklight身份验证领域和安全测试

票数 1
EN

Stack Overflow用户

发布于 2014-12-10 18:53:09

这个问题与IBM有关,在提出PMR之后,他们为Eclipse提供了包含修复和额外32个修复的更新。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26975181

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档