使用 gSOAP 进行 VS 2003/C++ 访问具有 WS-Security 的 SOAP Web 服务?

Posted

技术标签:

【中文标题】使用 gSOAP 进行 VS 2003/C++ 访问具有 WS-Security 的 SOAP Web 服务?【英文标题】:Use gSOAP for VS 2003/C++ access to SOAP Web Service with WS-Security? 【发布时间】:2009-10-07 17:44:42 【问题描述】:

我们有一个即将推出的项目,允许只能使用 C++/VS 2003 扩展的旧平台调用使用 WS-Security 的基于 SOAP 的 Web 服务。

我的 Google 研究表明,gSOAP 可能是最好的选择。

我正在寻找验证和/或替代建议。

【问题讨论】:

【参考方案1】:

我一直在使用 gSoap 和 WS-Security 的 wsse 插件,在 Windows 和 Linux 的客户端和服务器端都使用签名。花了一些时间,但效果很好。它也非常快。

它将要求您将 OpenSSL 与您的项目相关联。实际上,我在几个版本的 wsse 插件中发现了一个错误,该错误涉及直接调用 OpenSSL 以进行签名生成和验证。所有的错误都涉及泄漏 OpenSSL 结构。 (修复已被源代码树接受,并且是当前版本的一部分。)

总的来说,上手真的没有那么难。我使用 SoapUI (http://www.soapui.org/) 对签名生成进行故障排除,以验证我是否做错了什么或远程端是否有问题。

如果您在 Apache2 下进行服务器端 WS-Security,则必须坚持使用 gSoap 附带的 mod_gsoap 0.6。我不得不对其进行一些修改,因为默认情况下它不会处理 WS-Security。

我相信,但没有做很多调查,有人破坏了 SourceForge 当前版本的 mod_gsoap 0.7。我花了一段时间才发现 0.7 是 apache2 的段错误,所以也许这会为你省点麻烦。

【讨论】:

以上是关于使用 gSOAP 进行 VS 2003/C++ 访问具有 WS-Security 的 SOAP Web 服务?的主要内容,如果未能解决你的问题,请参考以下文章

gSOAP 空答案

gsoap使用总结

gsoap 在我每第二次调用时都会对我的应用程序(用 C 编写)进行段错误

使用 gSOAP 连接到 WCF Web 服务

覆盖 gSOAP 中的命名空间

gSOAP - 到 C 结构的 XML 数据(也由 gSOAP 生成)