【发布时间】:2015-02-18 12:12:10
【问题描述】:
我在使用 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。但是我的第二境界是没有被召唤的。如果我将第二个领域(RealmAdapterRealm2)的 step=1 和第一个领域(RealmAdapterRealm)更改为 step=2,那么第一个领域也正在工作。即 RealmAdapterRealm2 正在工作并且 RealmAdapterRealm 永远不会被调用。 请帮助我实现这一目标,因为我是 IBM Worklight 的新手
【问题讨论】:
-
mode="perSession" 在这里有什么影响?这些属性确实存在,否则我的适配器将不会被部署!。此外,如果我删除此属性也不起作用。
-
@nsm 您运行的是哪个版本的 Worklight?
-
@ChevyHungerford 我正在使用 IBM Mobile First 平台基础 6.3(开发者版)
-
抱歉,在一次会议上回复晚了。您可以向我们展示任何服务器日志输出吗?
-
@Chevy:我没有放任何服务器日志。但是当我在客户端调试应用程序时,在挑战处理程序 .js 文件中有 2 个处理程序,每个处理程序用于 authConfig 中的一个领域。因此,无论哪个领域首先在 authConfig 中定义,该特定领域的挑战处理程序只会被调用!永远不会调用第二个挑战处理程序。不知道我错过了什么。
标签: ibm-mobilefirst worklight-adapters