IBM Worklight 6.1.0.1, проблема с проверкой подлинности на основе двух адаптеров

Я столкнулся с проблемой аутентификации на основе двух адаптеров. Мое приложение — это повестка дня (гибридное приложение). Все функции адаптера должны быть защищены системой безопасности.

мое приложение использует аутентификацию на основе адаптеров, как написано в примерах на DeveloperWorks.

Мой первый адаптер (loginAdapter) предназначен для входа в систему (начало мобильного приложения). Я разработал обработчик (handlerLogin, мобильная сторона) с методами isCustomResponse, handlechallenge и т. д. Этот адаптер работает. Этот адаптер позволяет получить userId из логина и пароля.

После подключения пользователь может загрузить свою повестку дня. Мобильный телефон вызывает аутентификацию на основе другого адаптера (calendarAdapter). У меня есть другой обработчик (handlerCalendar) с методами (isCustomResponse, handlechallenge).

Когда мобиль вызывает метод getCalendarData (защищенный метод, CalendarAdapter), сервер обнаруживает, что пользователь не зарегистрирован для этого адаптера, поэтому сервер отправляет ошибку (структура authrequired + errorMessage) через функцию onAuthRequired.

На этом этапе все работает нормально.

Собственно, беда в том, что первый обработчик (handlerLogin) ловит эту ошибку, а должен быть второй обработчик (handlerCalendar).

Учитывая, что он перехватывается обработчиком Login, вызывается isCustomResponse и handlechallenge, и у меня нет ожидаемого результата! Я не знаю, почему.

Почему он не перехватывается обработчиком Calendar?

Я проверил свой код, имена переменных, файлы и т. д. Все в порядке.

Для информации, я сначала объявил handlerLogin до CalendarLogin.

Есть идеи, предложения??

заранее спасибо


person Alexis Chretienne    schedule 07.04.2014    source источник
comment
Вы используете одну и ту же область для обоих адаптеров?   -  person Shmulik Bardosh    schedule 07.04.2014
comment
Задача функции isCustomResponse состоит в том, чтобы выяснить, должен ли этот обработчик вызова позаботиться об этом конкретном запросе. Если вы используете одну и ту же область, то 2 обработчика вызовов будут реагировать.   -  person Shmulik Bardosh    schedule 07.04.2014


Ответы (1)


Похоже, вы использовали ту же область.

Задача функции isCustomResponse состоит в том, чтобы выяснить, должен ли этот обработчик вызова позаботиться об этом конкретном запросе. Если вы используете одну и ту же область для обоих адаптеров, то 2 обработчика вызовов будут реагировать на это.

person Shmulik Bardosh    schedule 08.04.2014
comment
Царства разные. Но я решил проблему, повторно развернув приложение и адаптеры. В течение некоторого времени я думаю, что у обоих адаптеров были одинаковые области. Eclipse, вероятно, сохранил некоторые старые настройки. Спасибо. - person Alexis Chretienne; 08.04.2014