X-Git-Url: http://www.project-moonshot.org/gitweb/?a=blobdiff_plain;f=saml%2Fsaml2%2Fbinding%2FSAML2SOAPClient.h;h=eae10307f41d5ecb493740a078f7341ae2d56e0c;hb=b1614d3c1fc1f4230ab2a123f43994127c25462c;hp=23b65a80d3536183b132d28368fb5c928064b961;hpb=730ef8006d0bdf6a6d111e416b8828c02f58fc32;p=shibboleth%2Fcpp-opensaml.git diff --git a/saml/saml2/binding/SAML2SOAPClient.h b/saml/saml2/binding/SAML2SOAPClient.h index 23b65a8..eae1030 100644 --- a/saml/saml2/binding/SAML2SOAPClient.h +++ b/saml/saml2/binding/SAML2SOAPClient.h @@ -26,6 +26,7 @@ #include namespace opensaml { + namespace saml2p { class SAML_API RequestAbstractType; @@ -35,30 +36,32 @@ namespace opensaml { /** * Specialized SOAPClient for SAML 2.0 SOAP binding. */ - class SAML_API SAML2SOAPClient : opensaml::SOAPClient + class SAML_API SAML2SOAPClient { public: /** - * Creates a SOAP client instance with a particular SecurityPolicy. + * Constructor * - * @param policy reference to SecurityPolicy to apply - * @param validating controls schema validation + * @param soaper reference to SOAPClient object to use for call */ - SAML2SOAPClient(SecurityPolicy& policy, bool validating=false) : opensaml::SOAPClient(policy, validating) {} + SAML2SOAPClient(SOAPClient& soaper) : m_soaper(soaper), m_correlate(NULL) { + } - virtual ~SAML2SOAPClient() {} + virtual ~SAML2SOAPClient() { + XMLString::release(&m_correlate); + } /** * Specialized method for sending SAML 2.0 requests. The SOAP layer will be * constructed automatically. * - *

The request will be freed by the client object if the method succeeds. + *

The request will be freed by the client object regardless of the outcome. * * @param request SAML request to send - * @param peer peer to send message to, expressed in metadata terms + * @param peer peer to send message to, expressed in metadata criteria terms * @param endpoint URL of endpoint to recieve message */ - virtual void sendSAML(RequestAbstractType* request, const saml2md::RoleDescriptor& peer, const char* endpoint); + virtual void sendSAML(RequestAbstractType* request, saml2md::MetadataCredentialCriteria& peer, const char* endpoint); /** * Specialized method for receiving SAML 2.0 responses. The SOAP layer will be @@ -78,6 +81,12 @@ namespace opensaml { * @return true iff the error should be treated as a fatal error */ virtual bool handleError(const Status& status); + + /** SOAP client object */ + SOAPClient& m_soaper; + + private: + XMLCh* m_correlate; }; };