繁体   English   中英

在C ++ / Linux中为Gsoap使用WSSE插件

[英]Using WSSE plugin for Gsoap in C++/Linux

我们如何在C ++ / Linux中为Gsoap实现WSSE插件? 链接不提供所有信息。

问题是我必须包含在我的WSDL生成的头文件中,使它与wsse兼容,以便soapcpp2 header.h生成足够的代码,以便我可以成功编译wsseapi.c?

另外,如果可能的话请提供实现wsse插件的工作示例代码(仅限C ++,没有C plz)?

要自动将#import "wsse.h"添加到wsdl2h生成的头文件(如果它尚未存在(wsdl2h使用WS-Policy检测WS-Security要求)),则首先修改typemap.dat以包含以下三行:

[
#import "wsse.h"
]

然后(假设是C ++):

  1. 运行wsdl2h -Iimport -o service.h <your-wsdls-xsds-etc>并确保wsdl2h使用修改后的typemap.dat (如果它在当前dir中你没问题)并且import选项指向gsoap import目录用wsse.h
  2. 运行soapcpp2 service.h
  3. 编译生成的soapC.cppsoapClient.cpp (如果客户端), soapServer.cpp (如果服务器), stdsoap2.cppdom.cppplugin/wsseapi.cplugin/smdevp.cplugin/mecevp.c
  4. 在编译上面的内容时,必须使用-DWITH_OPENSSL -DWITH_DOM
  5. 链接-lssl-lcrypto
  6. 启用HTTP压缩,与编译-DWITH_GZIP和链路与-lz

在C中编译时,请执行以上所有操作,但使用wsdl2h选项-c并使用.c文件。

请参阅WSSE文档以及gsoap包中的gsoap/samples/wssedemo示例,该示例显示了以几种可能的方式使用WS-Security的API调用,告诉您如何注册插件等。

我需要在头文件中包含什么内容

#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文档中找到)

另请参见操作方法部分

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM