SAPфорум.RU https://www.sapboard.ru/forum/ |
|
Добавить цифровую подпись в XML строку на выходе WEB Proxy https://www.sapboard.ru/forum/viewtopic.php?f=13&t=95011 |
Страница 1 из 1 |
Автор: | Timon&Pumba [ Вт, июн 20 2017, 09:09 ] |
Заголовок сообщения: | Добавить цифровую подпись в XML строку на выходе WEB Proxy |
Привет всем! На основе WSDL файла WEB сервиса создан WEB Proxy через который формируется XML документ. Необходимо выходную строку XML подписать квалифицированной цифровой подписью и добавить эту подпись в XML. Как получить выходную строку XML до ее отправки на WEB сервис? Есть какой-нибудь класс/метод ? |
Автор: | trop [ Ср, июн 21 2017, 22:50 ] |
Заголовок сообщения: | Re: Добавить цифровую подпись в XML строку на выходе WEB Proxy |
если правильно понял, в xi в мэппинге можно получить сообщение бинарном виде и что-нибудь в java сделать |
Автор: | Kengur [ Чт, июн 22 2017, 13:13 ] |
Заголовок сообщения: | Re: Добавить цифровую подпись в XML строку на выходе WEB Proxy |
Чем вы собираетесь подписывать? Проще всего складывать заранее сформированный файл и потом забирать его в канал. |
Автор: | Timon&Pumba [ Чт, июн 22 2017, 13:53 ] |
Заголовок сообщения: | Re: Добавить цифровую подпись в XML строку на выходе WEB Proxy |
trop написал(а): если правильно понял, в xi в мэппинге можно получить сообщение бинарном виде и что-нибудь в java сделать XI/PI у нас нет. |
Автор: | Timon&Pumba [ Чт, июн 22 2017, 13:55 ] |
Заголовок сообщения: | Re: Добавить цифровую подпись в XML строку на выходе WEB Proxy |
Kengur написал(а): Чем вы собираетесь подписывать? Проще всего складывать заранее сформированный файл и потом забирать его в канал. А какими средствами создать XML файл? |
Автор: | Kengur [ Чт, июн 22 2017, 15:53 ] |
Заголовок сообщения: | Re: Добавить цифровую подпись в XML строку на выходе WEB Proxy |
Если нет PI то зачем вам этот гемор? XML можно сделать трансформацией, выгрузить, подписать сторонней софтиной. Если говорим про EDI то у софтины уже обычно есть механизм отправки файла в провайдера. |
Автор: | Timon&Pumba [ Пт, июн 23 2017, 09:16 ] |
Заголовок сообщения: | Re: Добавить цифровую подпись в XML строку на выходе WEB Proxy |
Kengur написал(а): Если нет PI то зачем вам этот гемор? XML можно сделать трансформацией, выгрузить, подписать сторонней софтиной. Если говорим про EDI то у софтины уже обычно есть механизм отправки файла в провайдера. Заманчиво было использовать Service Consumer, который создается на основе WSDL файла. Сгенерил - и пользуйся на здоровье. Однако непонятно можно ли увидеть, изменить и подписать строку XML до ее отправки. Если нет, то придется искать другие варианты. Работа с файлами это на крайний случай (их будет около 1000 в день). Вручную собирать XML тоже нет большого желания. Кроме генерации Service Consumer как можно использовать файлы WSDL и XSD? Вообще с XML никогда не работал, это для меня темный лес, поэтому буду рад любым подсказкам. |
Автор: | Cathody [ Вс, июн 25 2017, 00:43 ] |
Заголовок сообщения: | Re: Добавить цифровую подпись в XML строку на выходе WEB Proxy |
XML из ABAP-структуры можно получить, например, вот так: 1) Воспользоваться методом ABAP_TO_XML_XSTRING класса CL_PROXY_XML_TRANSFORM. На вход подаётся структура с данными, которая является входным параметром для нужного Proxy Consumer-а, на выходе получается XSTRING, который достаточно тривиально превращается в STRING. 2) Сделать Simple transformation на основе XSD, потом вызывать CALL TRANSFORMATION для получения XML 3) Использовать редактор иерархий J3RTAXREP для XML-генерации на основе имеющегося у вас XSD. Совет дан в предположении, что криптографическое ПО для подписи и его использование в ERP сертифицированы для РФ - а иначе не стоит даже и пытаться использовать ЭЦП для XML-документов. |
Автор: | Timon&Pumba [ Пн, июн 26 2017, 14:19 ] |
Заголовок сообщения: | Re: Добавить цифровую подпись в XML строку на выходе WEB Proxy |
Спасибо! Получилось создать XML по 1 пункту. Теперь вопрос чем заслать полученную строку XML на WEB сервис? |
Автор: | Удав [ Пн, июн 26 2017, 15:47 ] |
Заголовок сообщения: | Re: Добавить цифровую подпись в XML строку на выходе WEB Proxy |
CL_HTTP_CLIENT=>CREATE_BY_URL и интерфейс IF_HTTP_CLIENT. |
Автор: | Timon&Pumba [ Чт, июл 06 2017, 12:37 ] |
Заголовок сообщения: | Re: Добавить цифровую подпись в XML строку на выходе WEB Proxy |
Удав написал(а): CL_HTTP_CLIENT=>CREATE_BY_URL и интерфейс IF_HTTP_CLIENT. Что-то не получилось с CL_HTTP_CLIENT. Все отрабатывает без ошибок, но и не возвращает никакого результата. Пошел другим путем. На основе consumer proxy создал generic consumer proxy. Code: CALL METHOD cl_proxy_gen_clnt_factory=>create_proxy_for_class
EXPORTING class_name = 'Z_WEB_SERVICE' logical_port_name = 'Z_WEB_SERVICE_PORT' RECEIVING proxy = web_proxy. CALL METHOD web_proxy->execute_xml_xstring EXPORTING request = request RECEIVING response = response. |
Автор: | Timon&Pumba [ Ср, май 23 2018, 15:09 ] |
Заголовок сообщения: | Re: Добавить цифровую подпись в XML строку на выходе WEB Proxy |
Возвращаемся к нашим баранам... Получатель XML требует наличия тэгов <soapenv:Envelope>, <soapenv:Header>, <soapenv:Body>. Однако, WEB прокси создает XML без них. Каким образом эти тэги должны быть добавлены к XML? Должны ли они изначально прописаны в WSDL файле? |
Страница 1 из 1 | Часовой пояс: UTC + 3 часа |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |