Ibm mobilefirst 一个会话中的Worklight适配器身份验证在另一个会话中共享

Ibm mobilefirst 一个会话中的Worklight适配器身份验证在另一个会话中共享,ibm-mobilefirst,worklight-adapters,worklight-security,Ibm Mobilefirst,Worklight Adapters,Worklight Security,Worklight 6.1.0.1,并使用基于Chrome的模拟器启动移动web应用程序。从WL studio部署到WL开发服务器的应用程序和适配器 我有一个(多个)安全适配器过程,我已经用两种配置进行了测试: <procedure requestTimeoutInSeconds="20" name="getBaseData" securityTest="Connections-securityTest"/> <procedure requestTimeoutInSeconds

Worklight 6.1.0.1,并使用基于Chrome的模拟器启动移动web应用程序。从WL studio部署到WL开发服务器的应用程序和适配器

我有一个(多个)安全适配器过程,我已经用两种配置进行了测试:

<procedure requestTimeoutInSeconds="20" name="getBaseData" securityTest="Connections-securityTest"/>
<procedure requestTimeoutInSeconds="20" name="getCommunityMembersOf" securityTest="Connections-securityTest"/>


getBaseData只创建活动用户(包括id+pwd供以后使用),并将固定数据返回给应用程序。 getCommunityMemberOf是一个https适配器,用于从后端服务器检索数据。此适配器从活动用户检索id+pwd,并将此信息作为https请求的输入

我使用javascript控制台启动第一个chrome模拟器会话,显示应用程序调用了过程getBaseData。凭证被收集并验证,setActiveUser完成。然后,应用程序调用过程getCommunityMembersOf,该过程调用过程不进行身份验证,正如预期的那样


我为同一个应用程序启动了第二个chrome模拟器会话,javascript控制台显示调用过程getBaseData没有被质询,并且被处理,这似乎表明身份验证已完成,表明模拟器会话#1身份验证也满足模拟器会话#2身份验证。这是我想要阻止的一种行为,并且两个模拟器会话都需要独立的身份验证。感谢您提供有关为什么会发生这种情况的任何建议,以及我能做些什么来阻止此会话共享。谢谢。

Chrome正在不同选项卡之间共享会话,与Worklight无关


您可以在匿名模式下打开一个新浏览器,以防止共享会话。或者打开不同类型的浏览器。

更清楚地说,您使用两种配置进行了测试,结果相同,或者…?相同。我通过查看javascript控制台确认该行为,并查看质询处理程序中的日志语句。在这两种配置设置中,我都看到了来自挑战处理程序(CH)的控制台日志和应用程序的第一个实例,而没有看到来自第二个应用程序实例的任何CH控制台日志。请让我知道我是否应该改变我的测试场景或打开任何可能有帮助的跟踪设置。通过在WLCONNONIT期间调用适配器,测试非常基本。数据返回很好,但我发现应用程序的第二个实例在启动时没有遇到任何问题,适配器返回的数据也很好。Idan,我使用Getting Started AdapterBaseAuth project->SingleStepAuth应用程序运行了类似的测试。我修改了SingleStepAuthAdapter.xml并更新:部署适配器我收到服务器控制台警告:FWLSE0103W:当connectAs='endUser'时,过程'getSecretData'将始终需要身份验证。[project AdapterBaseAuth](如预期)我运行相同的2个Chrome浏览器测试,第一个测试的凭据受到质疑,第二个浏览器测试没有受到质疑。您能否详细说明“模拟器会话”的含义?登录Chrome stores会话cookie后。如果您使用相同的应用程序打开一个新选项卡,您将保持登录状态,因为会话cookie被重用。您可以在Chrome debug tools中的Resources->CookiesSimulator下检查会话Cookie,它是从Worklight控制台调用的移动浏览器模拟器。(更新测试)将测试应用程序部署到我的Nexus7,当从我的设备运行一个会话,从Chrome运行一个会话时,我看不出问题(有最终用户和没有最终用户),因此使用浏览器验证此行为不是一个好方法(我的错误)。现在,当我使用终端用户运行测试时,如果没有终端用户,我看不到行为上的差异,这两种情况都会导致挑战。有人能解释一下在有终端用户集和没有终端用户集的情况下,安全过程的预期行为吗?谢谢。我为我的两个Chrome浏览器会话设置了-incognito。测试结果没有变化。然而,我确实将测试应用程序部署到了我的Nexus7,当从我的设备运行一个会话时,从Chrome运行一个会话时,我看不到问题(有终端用户和没有终端用户),因此使用浏览器验证此行为不是一个好方法。现在,当我使用终端用户运行测试时,没有终端用户,我看不出有什么不同。有人能解释一下在有终端用户集和没有终端用户集的情况下,安全过程的预期行为吗?感谢EndUser位于worklight服务器和后端之间。不是客户端。使用多个设备,我能够验证“终端用户”在我的WL服务器和后端之间的使用是否正常。谢谢大家的时间和帮助。
<procedure connectAs="endUser" requestTimeoutInSeconds="20" name="getBasetData" securityTest="Connections-securityTest"/>
<procedure connectAs="endUser" requestTimeoutInSeconds="20" name="getCommunityMembersOf" securityTest="Connections-securityTest"/>