|
Обмен с сторонним веб-сервисом | ☑ | ||
---|---|---|---|---|
0
Classic
10.03.17
✎
17:13
|
Народ, пните пожалуйста в правильном направлении.
Есть внешний веб-сервис, штатными WS-ссылками он не кушается. Методом выборочного удаления установил, что ругается на <wsp:Policy xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" wsu:Id="UTOverTransport"> <wsp:ExactlyOne> <wsp:All> <sp:TransportBinding xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy"> <wsp:Policy> <sp:TransportToken> <wsp:Policy> <sp:HttpsToken RequireClientCertificate="false"/> </wsp:Policy> </sp:TransportToken> <sp:AlgorithmSuite> <wsp:Policy> <sp:Basic256/> </wsp:Policy> </sp:AlgorithmSuite> <sp:Layout> <wsp:Policy> <sp:Lax/> </wsp:Policy> </sp:Layout> </wsp:Policy> </sp:TransportBinding> <sp:SignedSupportingTokens xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy"> <wsp:Policy> <sp:UsernameToken sp:IncludeToken="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy/IncludeToken/AlwaysToRecipient"/> </wsp:Policy> </sp:SignedSupportingTokens> </wsp:All> </wsp:ExactlyOne> </wsp:Policy> Если убрать этот кусок, то определяется через WSОпределения. Без этого куска можно работать с WSОпределением и WSПрокси, но сам веб-сервис естественно ругается на отсутствие wsse:Security У меня такие вопросы возникли: 1. Где можно наглядно посмотреть заполнение этого блока (wsse:Security). С описанием чем шифруются пароли, и что такое wsse:Nonce? 2. Где можно найти простой пример Soap запроса не штатными методами? 3. Как можно вытащить ту xmlину, которую 1С создает штатно из своих методов WS? 4. Может еще чего подскажите |
|||
1
Serginio1
10.03.17
✎
17:38
|
||||
2
Неверный Параметр И
10.03.17
✎
17:53
|
(1) Не, Серёж, так ты работу не найдешь.
|
|||
3
Classic
10.03.17
✎
18:29
|
Ладно, давайте другой вопрос.
Мне в xmlке надо сгенерировать некие сущности Password, Nonce,Created Насколько я понял это пароль с какими-то ключами. Что это может значить? |
|||
4
Неверный Параметр И
10.03.17
✎
18:49
|
||||
5
Classic
10.03.17
✎
18:53
|
(4) Это я нашел.
Я не пойму каким макаром я могу сгенерить Nonce, Created и на основании них пароль. 1Совскими средствами. стандартный 1Совский base64 ничего такого не просит. |
|||
6
Неверный Параметр И
10.03.17
✎
18:58
|
Причем тут 1Сный base64, что он просит?
https://gist.github.com/javajack/04422d5a95d8e8dae1aa - прям видно что есть что и куда |
|||
7
Classic
10.03.17
✎
19:55
|
(6) Видно, если на жабе писать. Сразу видно какие библиотеки подключить, чтоб тебе этот base64 сформировать. А вот как это сгенерить в 1С, мне не понятно.
|
|||
8
Serginio1
10.03.17
✎
20:56
|
(7) Поступи проще. Сгенерируй в VS SOAP клиента, и дергай из 1С с помощью
http://ru.stackoverflow.com/questions/527763/%d0%9a%d0%b0%d0%ba-%d0%b2%d1%8b%d0%b7%d0%b2%d0%b0%d1%82%d1%8c-%d0%bc%d0%b5%d1%82%d0%be%d0%b4-%d0%b8%d0%b7-c-%d0%b2-1%d0%a1/527802#527802 и Практическое применение NET в 1С8 с помощью Serginio1 |
|||
9
Serginio1
10.03.17
✎
20:59
|
||||
10
Vlad_69
10.03.17
✎
21:16
|
"Пусть безумная идея, вы не рубайте сгоряча".
Есть такой веб-сервис Россельхознадзора, тоже с закидонами (с абстрактными классами в схеме, такой финт 1С тоже не понимает). Так выкручивались вот таким способом: http://vetrf.ru/vetrf-forum/posts/list/30/6955.page#39151 Подсовывали в конфигу xsd, потом собирали ФабрикуXDTO из нескольких пакетов. Что, если стандартное описание SOAP-Envelope сохранить локально в xsd, подсунуть в описание узла Header злополучные "сучности" Password, Nonce,Created и потом заполнять их обычными методами ФабрикиXDTO? (Это так, навскидку...) |
|||
11
Classic
11.03.17
✎
12:43
|
(10)
Насколько я понял из открытых источников, то 1Ска вообще не может корректно сформировать эти Password и Nonce. Весь остальной файл я руками соберу. Мне большая тИповость не нужна. А вот где бы найти простенький com-объект по формированию правильного нонса с пассвордом64. В приведенном добрым человеком (4) примере видно, что даже изначальный рендомный Nonce генерится из какого-то предопределенного класса. |
|||
12
Vlad_69
11.03.17
✎
18:39
|
Ну чтоб с дотнетом не морочиться, можно попробовать "ЖабийСкрип" задействовать:
https://github.com/vrruiz/wsse-js (например). А дальше тривиально: ScriptCtrl = Новый COMОбъект("MSScriptControl.ScriptControl"); ScriptCtrl.Language = "JScript"; ... и так далее |
|||
13
Classic
11.03.17
✎
23:42
|
(12) Красавчик. А то я уже на жабе классы набросал и ищу, как их из 1С вызывать :)
А где дока по этой хрене? |
|||
14
Serginio1
12.03.17
✎
09:27
|
Мыши плакали, кололись, но продолжали грызть кактус
|
|||
15
Classic
12.03.17
✎
13:27
|
(14) Вот честно, ничего не понятно в тех ссылках, что ты даешь. Понимаю, что что-то крутое, а вот как юзать - хз.
|
|||
16
Serginio1
12.03.17
✎
13:56
|
(15) Наверняка к этому Вэб сервису есть примеры на том же C#.
Вот и копни как создать DLL, как добавить ссылку на Вэб сервис например http://msdn.microsoft.com/ru-ru/library/dd492132.aspx http://msdn.microsoft.com/ru-ru/library/bb628649.aspx http://naviart.ru/nav-web-service-connect-from-csharp-webref Или попроси человека, знающего C# поддключить тебе библиотеку. Вот решения с другими Вэб сервисами Использование классов .Net в 1С для новичков |
|||
17
Vlad_69
12.03.17
✎
14:50
|
(13) >>А где дока по этой хрене?
По которой именно из "хреней"? :) |
|||
18
Vlad_69
12.03.17
✎
16:03
|
Ну вот как-то так:
на выходе имеем: UsernameToken Username="bobik", PasswordDigest="Lyikf2rBrMeuF8yFVmMfEhBQaAk=", Created="2017-03-12T16:02:50+03:00", Nonce="YjZ2M29HN2xXeTVIK2xPaUVwSFY5OEZHWStnPQ==" |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |