IBM Worklight 6.1.0.1,基于 2 个适配器的身份验证出现问题

Posted

技术标签:

【中文标题】IBM Worklight 6.1.0.1,基于 2 个适配器的身份验证出现问题【英文标题】:IBM Worklight 6.1.0.1, trouble with 2 adapters based authentication 【发布时间】:2014-04-07 12:46:26 【问题描述】:

我在使用 2 个基于适配器的身份验证时遇到了问题。我的应用程序是议程(混合应用程序)。所有适配器的功能都必须受到安全保护。

我的应用使用基于适配器的身份验证,例如在 DeveloperWorks 上编写的示例。

我的第一个适配器 (loginAdapter) 专用于登录(移动应用程序的开始)。我用 isCustomResponse、handlechallenge 等方法开发了一个处理程序(handlerLogin、移动端)。这个适配器有效。 此适配器允许从登录名和密码中获取用户 ID。

一旦连接,用户就可以下载他的议程。移动设备调用另一个基于适配器的身份验证 (calendarAdapter)。我还有一个带有方法(isCustomResponse、handlechallenge)的处理程序(handlerCalendar)。

当手机调用getCalendarData方法(受保护的方法,CalendarAdapter)时,服务器检测到用户没有注册这个适配器,这就是为什么服务器通过函数onAuthRequired发送错误(结构authrequired + errorMessage)。

在这一步,一切正常。

其实问题出在,第一个处理程序(handlerLogin)捕捉到了这个错误,而它应该是第二个处理程序(handlerCalendar)。

鉴于它被 handlerLogin 捕获,isCustomResponse 和 handlechallenge 被调用,我没有预期的结果!我不知道为什么。

为什么它没有被 handlerCalendar 捕获?

我验证了我的代码、变量名、文件等。一切正常。

关于信息,我首先在 CalendarLogin 之前声明了 handlerLogin。

你有什么想法、建议吗??

提前谢谢你

【问题讨论】:

您是否对两个适配器使用相同的域? isCustomResponse 函数的工作是找出这个挑战处理程序是否应该处理这个特定的请求。如果您使用相同的领域,那么 2 个挑战处理程序会做出反应。 【参考方案1】:

看起来你使用的是同一个领域。

isCustomResponse 函数的工作是找出这个挑战处理程序是否应该处理这个特定的请求。如果您对两个适配器使用相同的领域,那么 2 个质询处理程序将对它做出反应。

【讨论】:

领域不同。但我通过重新部署应用程序和适配器解决了这个问题。有一段时间,我认为两个适配器具有相同的领域。 Eclipse 可能保存了一些旧设置。谢谢。

以上是关于IBM Worklight 6.1.0.1,基于 2 个适配器的身份验证出现问题的主要内容,如果未能解决你的问题,请参考以下文章

IBM worklight 中基于标签的推送通知示例

IBM Worklight:基于适配器的身份验证成功后未获得响应

基于 IBM Worklight 适配器的身份验证

Worklight - 如何使用 IBM Worklight Tabbar API?

IBM Worklight 6.1 - 任何实现基于 SSO 的身份验证的参考资料?

IBM Worklight - 基于 6.1 构建的项目不会部署在 6.1 服务器上,说我需要使用 6.0