8

C++/Linux で Gsoap の WSSE プラグインを実装するにはどうすればよいですか? このリンクはすべての情報を提供するわけではありません。

問題は、wsseapi.c を正常にコンパイルできるように、soapcpp2 header.h が十分なコードを生成できるように、WSDL によって生成されたヘッダー ファイルに何を含めなければならないかということです。

また、可能であれば、wsse プラグインを実装するサンプル コード (C++ のみ、C plz なし) を提供してください。

4

2 に答える 2

4

#import "wsse.h"wsdl2h で生成されたヘッダー ファイルに が含まれていない場合に自動的に追加するには (wsdl2h は WS-Policy で WS-Security 要件を検出します)、まず次typemap.datの 3 行を含めるように変更します。

[
#import "wsse.h"
]

次に (C++ の場合):

  1. 実行wsdl2h -Iimport -o service.h <your-wsdls-xsds-etc>して、wsdl2hが変更されたものを使用していることを確認しtypemap.dat(現在のディレクトリにある場合は問題ありません)、インポートオプションはgsoapimportディレクトリを指していますwsse.h
  2. 走るsoapcpp2 service.h
  3. soapC.cpp生成された, soapClient.cpp(クライアントの場合), soapServer.cpp(サーバーの場合), , stdsoap2.cpp,dom.cppをコンパイルします。plugin/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/samples/wssedemo、いくつかの可能な方法で WS-Security を使用するための API 呼び出しを示す gsoap パッケージの例、プラグインの登録方法などを参照してください。

于 2016-02-04T15:17:09.790 に答える
-1

ヘッダー ファイルに何を含める必要がありますか

#import "wsse.h"

(ヘッダー ファイル内のコメント、または " Policy Enablers of Binding " で始まる部分の生成されたドキュメントを参照してください)

更新: 生成されたドキュメントからコピー & ペースト:

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 ドキュメントで見つけることができます)

ハウツー セクションも参照してください。

于 2013-07-01T16:19:49.947 に答える