2011-06-20 14 views
7

Làm cách nào chúng tôi có thể triển khai plugin WSSE cho Gsoap trong C++/Linux? link không cung cấp tất cả thông tin.Sử dụng plugin WSSE cho Gsoap trong C++/Linux

Vấn đề là những gì tôi phải đưa vào tệp tiêu đề của tôi được tạo bởi WSDL, để làm cho nó tương thích với nhau để header soapcpp2.h tạo đủ mã để tôi có thể biên dịch wsseapi.c thành công?

Ngoài ra, nếu có thể, vui lòng cung cấp mã mẫu làm việc (chỉ C++, không có C plz) triển khai plugin wsse?

Trả lời

-1

gì làm tôi phải bao gồm trong tập tin tiêu đề của tôi

#import "wsse.h" 

(Xem chú thích trong tập tin tiêu đề, hoặc các tài liệu được tạo ra cho một phần bắt đầu "Policy Enablers của Binding")

Cập nhật: Sao chép & Dán từ tài liệu được tạo:

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 

(điều này có thể được tìm thấy trong tài liệu hướng dẫn doxygen tạo ra cho các ràng buộc của bạn)

Xem thêm how-to section.

3

Để tự động thêm một #import "wsse.h" đến tập tin tiêu đề wsdl2h tạo nếu nó không phải là đã có (wsdl2h phát hiện yêu cầu WS-Security với WS-Policy), thì trước tiên sửa đổi typemap.dat bao gồm ba dòng:

[ 
#import "wsse.h" 
] 

Sau đó (giả sử C++):

  1. chạy wsdl2h -Iimport -o service.h <your-wsdls-xsds-etc> và chắc chắn rằng wsdl2h sử dụng sửa đổi typemap.dat (nếu nó đang ở trong thư mục hiện tại bạn là OK) và các điểm tùy chọn nhập vào gsoap.210 thư mục với wsse.h
  2. chạy soapcpp2 service.h
  3. biên dịch tạo ra soapC.cpp, soapClient.cpp (nếu khách hàng), soapServer.cpp (nếu máy chủ), stdsoap2.cpp, dom.cpp, plugin/wsseapi.c, plugin/smdevp.c, plugin/mecevp.c
  4. khi biên dịch trên, bạn phải sử dụng -DWITH_OPENSSL-DWITH_DOM
  5. liên kết với -lssl-lcrypto
  6. để bật tính năng nén HTTP, biên dịch với -DWITH_GZIP và liên kết với -lz

Khi biên dịch trong C, làm tất cả những điều trên nhưng sử dụng wsdl2h tùy chọn -c và sử dụng các file .c.

Xem WSSE documentation và cũng là gsoap/samples/wssedemo dụ trong gói gsoap, trong đó cho thấy các API gọi để sử dụng WS-Security bằng nhiều cách có thể, cho bạn biết làm thế nào để đăng ký các plugin, vv