/**
* @file saml/saml1/binding/SAML1SOAPClient.h
*
- * Specialized SOAPClient for SAML 1.x SOAP binding.
+ * Client class for SAML 1.x SOAP binding.
*/
#ifndef __saml1_soap11client_h__
#include <saml/binding/SOAPClient.h>
namespace opensaml {
+
namespace saml1p {
class SAML_API Request;
class SAML_API Status;
/**
- * Specialized SOAPClient for SAML 1.x SOAP binding.
+ * Client class for SAML 1.x SOAP binding.
*/
- class SAML_API SAML1SOAPClient : public opensaml::SOAPClient
+ class SAML_API SAML1SOAPClient
{
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
*/
- SAML1SOAPClient(SecurityPolicy& policy, bool validating=false) : opensaml::SOAPClient(policy, validating) {}
+ SAML1SOAPClient(SOAPClient& soaper) : m_soaper(soaper), m_correlate(NULL) {
+ }
- virtual ~SAML1SOAPClient() {}
+ virtual ~SAML1SOAPClient() {
+ XMLString::release(&m_correlate);
+ }
/**
* Specialized method for sending SAML 1.x requests. The SOAP layer will be
* constructed automatically.
*
- * <p>The request will be freed by the client object if the method succeeds.
+ * <p>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(Request* request, const saml2md::RoleDescriptor& peer, const char* endpoint);
+ virtual void sendSAML(Request* request, saml2md::MetadataCredentialCriteria& peer, const char* endpoint);
/**
* Specialized method for receiving SAML 1.x responses. The SOAP layer will be
* @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;
};
};