2014-04-07 2 views
0

У меня есть веб-сервиса аутентификации, сидя на http://example.com:9080/auth/login, который принимает POST запрос с WWW-URL-формы закодированные кодирования и реагирующий обратно в формате JSON.Worklight 6: Проверка подлинности с помощью адаптера против WebService

В настоящее время я просматриваю учебник по аутентификации на основе адаптера. Внутри тела submitAuthentication (имя пользователя, пароль) в SingleStepAuthAdapter-impl.js, у меня есть следующий:

function submitAuthentication(username,password): 
    var input = { 
     method: "post", 
     path: '/auth/login', 
     returnedContentType: 'json', 
     body: { 
      content: JSON.stringify({"username":username, "password":password}), 
      contentType: "application/x-www-url-formencoded;charset=utf-8" 
     } 
var returnData = WL.Server.invokeHttp(input) 

Проблемы я имею что сервер (локально принимали WebSphere) не получает мое имя пользователя и пароль. Я что-то упустил?

ответ

2

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

var input = { 
     method: "post" 
     returnedContentType: 'application/json', 
     path: path, 
     headers: { 
       'Authorization': 'Basic '+ base64_encode(username+':'+password), 

Вы также можете сделать запрос, а затем сохранить безопасное печенье и прикрепить его в качестве заголовка на будущие запросы после этого поста :

Attaching cookie to WorkLight Adapter response header

+0

Когда я добавил заголовки :, я получаю org.mozilla.javascript.EcmaError: ReferenceError: "base64_encode" не определен. – Stealth

+0

Кроме того, веб-сервис, который я использую, ожидает имя пользователя и пароль в теле запроса. – Stealth

+0

Вам нужно будет написать свой собственный метод кодирования base64 или использовать его уже. Это может быть написано на Javascript или даже на родной Java на стороне сервера. Вот еще одна информация: http://stackoverflow.com/questions/246801/how-can-you-encode-a-string-to-base64-in-javascript , если вы выполняете базовую аутентификацию по Http I требуется кодирование base64. Если вы хотите настроить образец проекта и загрузить его в окно или что-то подобное, я могу еще раз взглянуть на него –

Смежные вопросы