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:基于适配器的身份验证成功后未获得响应
Worklight - 如何使用 IBM Worklight Tabbar API?