2013-05-23 5 views
0

Код клиента пытается вызвать адаптер. Это инициирует аутентификацию в соответствующей области. Возможно, пользователь не имеет подходящих учетных данных и в конечном итоге хочет прекратить попытки. Я могу предоставить кнопку «Give Up», и мы можем использовать challegeHandler сказать Worklight, чтобы остановить усилия аутентификации, как это:Вызов процедуры адаптера, сообщение об ошибке аутентификации

this.challengeHandler.submitFailure(); 

Это работает в той степени, что попытка Логин заканчивается, но, кажется, что код вызов адаптера не вызывает обратного вызова и, следовательно, любые объекты с отсрочкой, которые могут ждать разрешения, остаются в неопределенности.

Вопрос заключается в том, можем ли мы договориться о возврате аутентификации вызывающему абоненту процедуры адаптера?

ответ

2

Я был проинформирован обходным путем к этому вопросу, в котором вы звоните:

challengeHandler.activeRequest.onUnresponsiveHost() 

Перед фактического вызова:

challengeHandler.submitFailure() 

Это приведет к отказу и отсрочке отсрочки по назначению.

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

+0

Запрос на добавление ссылки, пожалуйста, проголосовать [ссылка] (http://www.ibm.com/developerworks/rfe/execute?use_case=viewRfe&CR_ID=37799) –

1

Прежде всего, submitFailure() не будет называть адаптер. Он уведомит среду клиентской стороны о том, что аутентификация завершилась неудачно, поэтому инфраструктура будет удалять любые сохраненные запросы, ожидающие завершения аутентификации.

Если вы хотите, чтобы стереть идентификатор пользователя на стороне сервера, у вас есть два варианта

  1. создать процедуру адаптера, который не требует аутентификации и вызова WL.Server.setActiveUser («область-имя», нулевой). Это прекратит действие любого пользователя.
  2. вызов WL.Client.logout («область-имя») в приложении
+0

Спасибо, но это не отвечает на вопрос. Я не беспокоюсь о стороне сервера. Я беспокоюсь о ожидающем вызова адаптера, который инициировал процесс аутентификации - submitSuccess() будет перезапускать это, но submitFailure() не имеет никакого эффекта, и поэтому любые отложенные ожидания, ожидающие результата, остаются нерешенными. Моя мысль заключается в том, что было бы разумным, чтобы функция submitFailure() вызывала обратный вызов отказа при запросе запуска. – djna