Single sign on 与未受保护的适配器身份验证程序一起使用时,设备单一登录不起作用

Single sign on 与未受保护的适配器身份验证程序一起使用时,设备单一登录不起作用,single-sign-on,ibm-mobilefirst,worklight-adapters,worklight-server,worklight-security,Single Sign On,Ibm Mobilefirst,Worklight Adapters,Worklight Server,Worklight Security,我正在使用移动安全测试测试设备SSO,并使用了适配器身份验证。我在同一个项目中创建了两个应用程序,我的authenicationConfig.xml如下所示 <staticResources> <resource id="subscribeServlet" securityTest="SubscribeServlet"> <urlPatterns>/subscribeSMS*;/receiveSMS*;/ussd*</urlPa

我正在使用移动安全测试测试设备SSO,并使用了适配器身份验证。我在同一个项目中创建了两个应用程序,我的
authenicationConfig.xml
如下所示

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

 <securityTests>
           <mobileSecurityTest name="AuthSecurityTest">
        <testDeviceId provisioningType="none" />
        <testUser realm="AuthRealm" sso="true" />
    </mobileSecurityTest>
</securityTests> 

<realms>

    <realm loginModule="AuthLoginModule" name="AuthRealm">
        <className>com.worklight.integration.auth.AdapterAuthenticator</className>
        <parameter name="login-function" value="AuthAdapter.onAuthRequired"/>
        <parameter name="logout-function" value="AuthAdapter.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>

</realms>

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

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

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

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

</loginModules>
谁能告诉我我做错了什么。如何在不登录的情况下访问第二个应用程序

我确实阅读了发布在中的问题,但没有清楚地了解
Authadapter.xml
。另外,如何为
wl\u未受保护的
安全测试启用SSO

在登录后尝试重新启动时,Worklight控制台中出现以下错误

[错误]FWLSE0059E:登录到领域“AuthLoginModule”失败。流无法设置大小。[project DSSO]流无法设置大小
[错误]FWLSE0117E:错误代码:4,错误描述:身份验证错误,错误消息:使用loginModule AuthLoginModule执行身份验证时出错,用户标识不可用。[直资支援计划][直资支援计划]


我第一次尝试Worklight设备SSO

需要在application-descriptor.xml中提到安全测试

对于iPhone:

对于Android:


我终于让它工作了。我所要做的就是在应用程序描述符文件中提到安全测试
<procedure name="submitAuthentication" securityTest="wl_unprotected" />
    <procedure name="getSecretData" securityTest="AuthSecurityTest"/>
    <procedure name="getSecretData2" securityTest="AuthSecurityTest"/>
function onAuthRequired(headers, errorMessage){
    errorMessage = errorMessage ? errorMessage : null;

    return {
        authStatus: "credentialsRequired",
        errorMessage: errorMessage
    };
}

function submitAuthentication(username, password){
    if (username==="user" && password === "password"){

        var userIdentity = {
                userId: username,
                displayName: username, 
                attributes: {
                    foo: "bar"
                }
        };

        WL.Server.setActiveUser("AuthRealm", userIdentity);

        return { 
            authStatus: "complete" 
        };
    }

    return onAuthRequired(null, "Invalid login credentials");
}

function getSecretData(){
    return {
        secretData: "Very very very very secret data"
    };
}
function getSecretData2(){
    return {
        secretData: "Very very very very secret data222222222222222222"
    };
}
function onLogout(){
    WL.Logger.debug("Logged out");
}