IBM Worklight:安全测试中的多个领域未按预期工作

时间:2015-02-18 12:12:11

标签: ibm-mobilefirst worklight-adapters

我在使用Multiple Realm检查基于适配器的身份验证的安全性测试时遇到问题。             我在authenticationConfig.xml中有以下配置

    <customSecurityTest name="RealmAdapter-securityTest">
        <test isInternalUserID="true" realm="RealmAdapterRealm" step="1" mode="perRequest" />
        <test  realm="RealmAdapterRealm2" step="2" mode="perRequest"/>

    </customSecurityTest>
</securityTests>

    <realm name="RealmAdapterRealm" loginModule="MultipleRealmLoginModule">
        <className>com.worklight.integration.auth.AdapterAuthenticator</className>
        <parameter name="login-function" value="RealmAdapter.doLogin" />
        <parameter name="logout-function" value="RealmAdapter.onLogout" />
    </realm>
    <realm name="RealmAdapterRealm2" loginModule="MultipleRealmLoginModule">
        <className>com.worklight.integration.auth.AdapterAuthenticator</className>
        <parameter name="login-function" value="RealmAdapter.getText" />


    </realm>

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

问题只是第一个领域被召唤!在成功登录后我的RealmAdapterRealm的登录功能中,我正在设置用户会话对象并将authrequired返回到false。但我的第二个领域并没有被召集。如果我将step = 1和第一个域(RealmAdapterRealm)的第二个域(RealmAdapterRealm2)更改为step = 2,那么第一个域也正在工作.i.e RealmAdapterRealm2正在工作,RealmAdapterRealm永远不会被调用。      请帮助我实现这一目标,因为我是IBM Worklight的新手

1 个答案:

答案 0 :(得分:2)

问题是您在两个领域都使用相同的登录模块。登录模块是维护用户身份的实体。在RealmAdapterRealm中进行身份验证后,MultipleRealmLoginModule会创建用户身份。然后auth框架检查您是否已经在RealmAdapterRealm2中进行了身份验证。此检查意味着转到RealmAdapterRealm2中定义的登录模块,并询问它是否已创建用户标识。而且,由于您在两个领域都使用了MultipleRealmLoginModule - 一旦您使用其中一个领域进行身份验证,两者都将具有用户身份。

解决方案是每个领域都有单独的登录模块。将MultipleRealmLoginModule克隆到MultipleRealmLoginModule2并在RealmAdapterRealm2中使用它。