В настоящее время я работаю над POC Worklight 6.0, используя модуль проверки подлинности/входа в систему с помощью заголовка. При попытке доступа к защищенному адаптеру в приложении я получаю следующую ошибку в консоли:
403 (Forbidden)
TypeError: Объект # не имеет метода 'handleFailure' Я получаю эту ошибку при тестировании веб-версии приложения через консоль в Chrome.
Я также получаю аналогичную ошибку при тестировании версии приложения для iPhone. исключение. TypeError: 'undefined' не является функцией (оценка 'handler.handleFailure(wlFailure[realm])')
Просматривая файл wlclient.js в классе/функции AbstractChallengeHandler, я не вижу определения функции для handleFailure, которое объясняет приведенную выше ошибку. Я предполагаю, что должно быть определение для handleFailure или есть дополнительные конфигурации, необходимые для защиты ресурса адаптера с использованием проверки подлинности заголовка?
Причина, по которой я задаю этот вопрос, заключается в том, что я пытаюсь проверить свою логику в части «ChallengeHandler» на стороне клиента, которую я создал, и я пытаюсь понять, почему я не могу увидеть этот тип ошибки/ответа через обычная связь на стороне клиента challenger.isCustomResponse/challenger.handleChallenge.
Код/конфигурация ниже
Любые советы/ввод приветствуются
аутентификацияConfig.xml
<securityTests>
<webSecurityTest name="WebSecurityTest">
<testUser realm="HeaderAuthRealm"/>
</webSecurityTest>
<mobileSecurityTest name="MobileTest">
<testUser realm="HeaderAuthRealm"/>
<testDeviceId provisioningType="none"/>
</mobileSecurityTest>
<customSecurityTest name="HeaderAuth-securityTest">
<test realm="HeaderAuthRealm" isInternalUserID="true" />
</customSecurityTest>
</securityTests>
<realms>
<realm name="HeaderAuthRealm" loginModule="HeaderLoginModule">
<className>com.worklight.core.auth.ext.HeaderAuthenticator</className>
</realm>
</realms>
<loginModules>
<loginModule name="HeaderLoginModule">
<className>com.worklight.core.auth.ext.HeaderLoginModule</className>
<parameter name="user-name-header" value="HeaderAuth_USER"/>
</loginModule>
</loginModules>
HeaderAuthRealmChallenger.js
var HeaderAuthRealmChallenger = WL.Client.createChallengeHandler("HeaderAuthRealm");
HeaderAuthRealmChallenger.isCustomResponse = function(response) {
if (response.responseJSON.isSuccessful) {
WL.Logger.info('AUTHENTICATION SUCCESS =).......');
return false;
}else{
return true;
}
};
HeaderAuthRealmChallenger.handleChallenge = function(response){
WL.Logger.info('AUTHENTICATION FAILED =(.......');
$('#login').css('display','block');
};