2017-01-17 9 views
0

Я работаю над новой платформой 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, принципал оценивается и выполняется аутентификация.

У вас есть идея решить эту странную ситуацию?

Спасибо большое, Стефано

ответ

1

Я думаю, что Swift образец не отправляет запрос POST, но GET. Вы пытались отправить его как GET?

+0

Я пробовал, но ничего не изменилось. Принципиал по-прежнему равен нулю – Stefano

+0

Может быть, файлы cookie не прошли из-за проблемы с перекрестным доменом. По возможности используйте WLResourceRequest .. а не ajax. WLResourceRequest вызывается через собственный код, поэтому куки будут переданы – Ishai

+0

Чтобы проверить, переданы ли файлы cookie вместе с сервером, вы можете использовать веб-прокси Charles или Wireshark – Ishai