我们如何在C ++ / Linux中为Gsoap实现WSSE插件? 此link未提供所有信息。
问题是我必须包含在我的WSDL生成的头文件中,使它与wsse兼容,以便soapcpp2 header.h生成足够的代码,以便我可以成功编译wsseapi.c?
另外,如果可能的话,请提供实现wsse插件的工作示例代码(仅限C ++,没有C plz)?
答案 0 :(得分:3)
要自动将#import "wsse.h"
添加到wsdl2h生成的头文件(如果它尚未存在(wsdl2h使用WS-Policy检测WS-Security要求)),则首先修改typemap.dat
以包含这三个行:
[
#import "wsse.h"
]
然后(假设是C ++):
wsdl2h -Iimport -o service.h <your-wsdls-xsds-etc>
并确保wsdl2h使用修改后的typemap.dat
(如果它在当前目录中你没事),导入选项指向gsoap import
目录wsse.h
1}} soapcpp2 service.h
soapC.cpp
,soapClient.cpp
(如果是客户端),soapServer.cpp
(如果是服务器),stdsoap2.cpp
,dom.cpp
,plugin/wsseapi.c
, plugin/smdevp.c
,plugin/mecevp.c
-DWITH_OPENSSL
-DWITH_DOM
-lssl
和-lcrypto
-DWITH_GZIP
进行编译并与-lz
在C语言中进行编译时,请执行以上所有操作,但使用wsdl2h选项-c
并使用.c文件。
请参阅gopap包中的WSSE documentation以及gsoap/samples/wssedemo
示例,其中显示了以几种可能的方式使用WS-Security的API调用,告诉您如何注册插件等。
答案 1 :(得分:-1)
我需要在头文件中包含什么
#import "wsse.h"
(请参阅头文件中的注释,或者部分启动“绑定的策略启动器”的部分生成的文档)
更新: 复制&amp;从生成的文档中粘贴:
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文档中找到)