|
Авторизация на WEB-сервере, WS-ссылки | ☑ | ||
---|---|---|---|---|
0
AlexSTAL
26.08.19
✎
11:09
|
Делаю интеграцию через WS-ссылку. Не взлетает, ругается на авторизацию.
Пользователь доменный. Пробую просто скачать страницу с сервера: Запрос = Новый HTTPЗапрос("/", Заголовки); Результат = Соединение.Получить(Запрос); Результат 401, не авторизован. Начал разбирать в браузере в отладке, там в несколько запросов происходит обмен заголовками в режиме "запрос-ответ": При первом GET получаем WWW-Authenticate При втором GET отправляем WWW-Authenticate, получаем Set-Cookie и Location. При третьем GET переходим по Location, передаём часть параметров из Set-Cookie. И так 6 раз. Затем формирую вручную API-запрос, корректно получаю ответ в виде строки. А при использовании конструкции ТОпределение = Новый WSОпределения("D:\Обмен\_api.wsdl"); Определение = ТОпределение.Сервисы[0]; Прокси = Новый WSПрокси(ТОпределение, Определение.URIПространстваИмен, Определение.Имя, Определение.ТочкиПодключения[0].Имя, , , Новый ЗащищенноеСоединениеOpenSSL(), , Истина); Прокси.Пользователь = "DC\USER"; Прокси.Пароль = "пароль"; не знаю, как провернуть такую авторизацию... |
|||
1
Gimalaj
26.08.19
✎
12:08
|
(0) >> не знаю, как провернуть такую авторизацию...
Я отправил пример такой авторизации тебе на почту, указанную в личке. |
|||
2
Вафель
26.08.19
✎
12:09
|
доменного пользователя нельзя передать через логин/пароль.
это должен быть сам пользователь сервера 1с |
|||
3
Вафель
26.08.19
✎
12:09
|
имперсонализации в 1с нет
|
|||
4
AlexSTAL
26.08.19
✎
12:12
|
(1) Спасибо! Именно примерно так я и сделал. В результате получается JSON, его нужно парсить своими силами. Да и запросы нужно писать самому.
|
|||
5
AlexSTAL
26.08.19
✎
12:15
|
(2) Ну как бы не согласен:
Соединение = Новый HTTPСоединение(Сервер, , Пользователь, Пароль, , , Новый ЗащищенноеСоединениеOpenSSL(), Истина); отрабатывает именно как доменная авторизация и именно под пользователем, указанным в параметрах! |
|||
6
Gimalaj
26.08.19
✎
12:49
|
(4) Немного не понял.
1. Запрос = Новый HTTPЗапрос("/", Заголовки); - вот здесь у тебя все работает, но в результате получаешь JSON, который нужно парсить вручную? Это я правильно понял? 2. Правильно ли я понял, что для того, чтобы избавиться от проблемы парсинга JSON-а, ты хочешь использовать ws-ссылки (т.е. то, где у тебя написано, начиная с "Новый WSОпределения("D:\Обмен\_api.wsdl"); ")? |
|||
7
AlexSTAL
26.08.19
✎
12:53
|
(6) Пояснения
1. Да! Я изначально забыл в 0 вопросе вставить код создания Соединения Соединение = Новый HTTPСоединение(Сервер, , Пользователь, Пароль, , , Новый ЗащищенноеСоединениеOpenSSL(), Истина); ну и соответственно получение GET: Результат = Соединение.Получить(Запрос); В результате у меня не JSON, а XML, но это дело не меняет. 2. Да! |
|||
8
Gimalaj
26.08.19
✎
14:06
|
(7) Тогда х/з, в чем дело. У меня используется такая конструкция, может пригодится и тебе:
|
|||
9
AlexSTAL
26.08.19
✎
14:45
|
(8) С другими серверами у меня так же, проблем нет.
Я так понимаю, это какая-то извращённая авторизация... Вот и хотелось бы совместить сначала авторизацию в "ручном" режиме через HTTPСоединение, а затем это соединение использовать в WSПрокси... |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |