我遇到了基于2个适配器的身份验证的问题。我的应用程序是议程(混合应用程序)。所有适配器的功能必须受到安全保护。
我的应用程序使用基于适配器的身份验证,就像在DeveloperWorks上的示例中所写。
我的第一个适配器(loginAdapter)专用于登录(移动应用程序的开头)。我开发了一个处理程序(handlerLogin,移动端),方法是isCustomResponse,handlechallenge等。这个适配器工作。 此适配器允许从登录名和密码获取userId。
一旦连接,用户就可以下载他的日程。移动设备调用另一个基于适配器的身份验证(calendarAdapter)。我有一个带方法的其他处理程序(handlerCalendar)(isCustomResponse,handlechallenge)。
当移动设备调用方法getCalendarData(受保护的方法,CalendarAdapter)时,服务器检测到用户未注册此适配器,这就是服务器通过onAuthRequired函数发送错误(结构authrequired + errorMessage)的原因。
在这一步,一切正常。
实际上,麻烦来自于,第一个处理程序(handlerLogin)捕获了这个错误,而它应该是第二个处理程序(handlerCalendar)。
鉴于它被handlerLogin捕获,isCustomResponse和handlechallenge被调用,我没有预期的结果!我不知道为什么。
为什么处理程序没有抓住它?
我验证了我的代码,变量的名称,文件等等。一切都还可以。
对于信息,我首先在CalendarLogin之前声明了handlerLogin。
你有什么想法,建议吗?
提前谢谢
答案 0 :(得分:1)
看起来你使用了相同的领域。
isCustomResponse函数作业是找出此质询处理程序是否应该处理此特定请求。如果您对两个适配器使用相同的域,则2个挑战处理程序将对其作出反应。