Использование плагина WSSE для Gsoap в C++/Linux

Как мы можем реализовать плагин WSSE для Gsoap в C++/Linux? Эта ссылка содержит не всю информацию.

Проблема в том, что мне нужно включить в файл заголовка, сгенерированный WSDL, чтобы сделать его совместимым с wsse, чтобы заголовок soapcpp2.h генерировал достаточно кода, чтобы я мог успешно скомпилировать wsseapi.c?

Кроме того, если возможно, предоставьте рабочий пример кода (только C++, без C plz), который реализует плагин wsse?


person Aditya Arora    schedule 20.06.2011    source источник


Ответы (2)


Чтобы автоматически добавить #import "wsse.h" в сгенерированный wsdl2h заголовочный файл, если его там еще нет (wsdl2h определяет требования WS-Security с помощью WS-Policy), сначала измените typemap.dat, чтобы включить следующие три строки:

[
#import "wsse.h"
]

Затем (при условии С++):

  1. запустите wsdl2h -Iimport -o service.h <your-wsdls-xsds-etc> и убедитесь, что wsdl2h использует измененный typemap.dat (если он находится в текущем каталоге, все в порядке), а опция импорта указывает на каталог gsoap import с wsse.h
  2. беги soapcpp2 service.h
  3. скомпилировать сгенерированные soapC.cpp, soapClient.cpp (если клиент), soapServer.cpp (если сервер), stdsoap2.cpp, dom.cpp, plugin/wsseapi.c, plugin/smdevp.c, plugin/mecevp.c
  4. при компиляции вышеуказанного необходимо использовать -DWITH_OPENSSL -DWITH_DOM
  5. ссылка на -lssl и -lcrypto
  6. чтобы включить сжатие HTTP, скомпилируйте с помощью -DWITH_GZIP и свяжите с -lz

При компиляции в C выполните все вышеперечисленное, но используйте параметр wsdl2h -c и файлы .c.

См. документацию по WSSE, а также пример gsoap/samples/wssedemo в пакете gsoap, который показывает вызовы API для использования WS-Security несколькими возможными способами, рассказывает, как зарегистрировать подключаемый модуль и т. д.

person Dr. Alex RE    schedule 04.02.2016

что я должен включить в свой заголовочный файл

#import "wsse.h"

(См. комментарии в заголовочном файле или сгенерированную документацию для части, начинающейся с «Активаторы политик привязки»)

Обновление: скопируйте и вставьте из сгенерированной документации:

WS-Security (SOAP Message Security) 1.0 (accepts 1.1):

#import "wsse.h" // to be added to this header file for the soapcpp2 build step
#include "plugin/wsseapi.h"
soap_register_plugin(soap, soap_wsse); // register the wsse plugin in your code
// See the user guide gsoap/doc/wsse/html/index.html

(это можно найти в сгенерированной документации doxygen для ваших привязок)

См. также раздел с инструкциями.

person Daddy32    schedule 01.07.2013