Я работаю над новой платформой MFP8, и я хочу реализовать аутентификацию LTPA в гибридном приложении. Поиск в Интернете я нашел быструю реализацию LTPA ChallengeHandler (https://github.com/mfpdev/ldap-and-ltpa-sample/tree/master/LTPABasedSample). Но, если я попытаюсь воспроизвести одно и то же поведение в JS challengeHandler, это не сработает. Ниже моя реализация challengeHandler:LTPA ChallengeHandler Javascript MFP8
var UserLoginChallengeHandler = function() {
var isChallenged = false;
var securityCheckName = 'LTPA';
var URL;
var userLoginChallengeHandler = WL.Client.createSecurityCheckChallengeHandler(securityCheckName);
document.getElementById("login").addEventListener("click", login);
userLoginChallengeHandler.securityCheckName = securityCheckName;
userLoginChallengeHandler.handleChallenge = function(challenge) {
WL.Logger.debug("handleChallenge");
showLoginDiv();
isChallenged = true;
URL = challenge.loginURL;
};
userLoginChallengeHandler.handleSuccess = function(data) {
WL.Logger.debug("handleSuccess");
isChallenged = false;
showProtectedDiv();
};
userLoginChallengeHandler.handleFailure = function(error) {
WL.Logger.debug("handleFailure: " + error.failure);
isChallenged = false;
if (error.failure !== null){
alert(error.failure);
} else {
alert("Failed to login.");
}
};
function login() {
var basic = "Basic YWRtaW46YWRtaW4="; //base64 of admin:admin
$.ajax({
type: "POST",
url: URL,
headers: {
"Authorization": basic
},
success: function(data, status, xhr){
console.log(data);
userLoginChallengeHandler.submitChallengeAnswer({});
},
error: function(jqXhr, status, error){
console.log(error);
}
});
}
return userLoginChallengeHandler;
};
Когда я подать заявку на равнину войны применения, главным в методе авторизовать из LTPASecurityCheck результатов нуля. Вместо этого, если я выполняю приложение примера iOS, принципал оценивается и выполняется аутентификация.
У вас есть идея решить эту странную ситуацию?
Спасибо большое, Стефано
Я пробовал, но ничего не изменилось. Принципиал по-прежнему равен нулю – Stefano
Может быть, файлы cookie не прошли из-за проблемы с перекрестным доменом. По возможности используйте WLResourceRequest .. а не ajax. WLResourceRequest вызывается через собственный код, поэтому куки будут переданы – Ishai
Чтобы проверить, переданы ли файлы cookie вместе с сервером, вы можете использовать веб-прокси Charles или Wireshark – Ishai