using soap11::SOAPClient::send;
/**
- * SAML-specific method uses a RoleDescriptor to determine the peer name and prepare the
+ * SAML-specific method uses metadata to determine the peer name and prepare the
* transport layer with peer credential information. The SecurityPolicy is also reset,
* in case the policy is reused.
*
* @param env SOAP envelope to send
- * @param peer peer to send message to, expressed in metadata criteria terms
+ * @param from identity of sending application
+ * @param to peer to send message to, expressed in metadata criteria terms
* @param endpoint URL of endpoint to recieve message
*/
- virtual void send(const soap11::Envelope& env, saml2md::MetadataCredentialCriteria& peer, const char* endpoint);
+ virtual void send(const soap11::Envelope& env, const char* from, saml2md::MetadataCredentialCriteria& to, const char* endpoint);
/**
* Override applies SecurityPolicy to envelope before returning it.
using namespace xmltooling;
using namespace std;
-void SOAPClient::send(const soap11::Envelope& env, MetadataCredentialCriteria& peer, const char* endpoint)
+void SOAPClient::send(const soap11::Envelope& env, const char* from, MetadataCredentialCriteria& to, const char* endpoint)
{
// Clear policy.
m_policy.reset();
- m_criteria = &peer;
- m_peer = &(peer.getRole());
+ m_criteria = &to;
+ m_peer = &(to.getRole());
const QName& role = m_peer->getElementQName();
if (XMLString::equals(role.getLocalPart(),RoleDescriptor::LOCAL_NAME))
m_policy.setRole(&role);
auto_ptr_char pn(dynamic_cast<const EntityDescriptor*>(m_peer->getParent())->getEntityID());
- soap11::SOAPClient::send(env, pn.get(), endpoint);
+ soap11::SOAPClient::send(env, SOAPTransport::Address(from, pn.get(), endpoint));
}
void SOAPClient::prepareTransport(xmltooling::SOAPTransport& transport)
* <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 criteria terms
+ * @param from identity of sending application
+ * @param to peer to send message to, expressed in metadata criteria terms
* @param endpoint URL of endpoint to recieve message
*/
- virtual void sendSAML(Request* request, saml2md::MetadataCredentialCriteria& peer, const char* endpoint);
+ virtual void sendSAML(Request* request, const char* from, saml2md::MetadataCredentialCriteria& to, const char* endpoint);
/**
* Specialized method for receiving SAML 1.x responses. The SOAP layer will be
using namespace xmltooling;
using namespace std;
-void SAML1SOAPClient::sendSAML(Request* request, MetadataCredentialCriteria& peer, const char* endpoint)
+void SAML1SOAPClient::sendSAML(Request* request, const char* from, MetadataCredentialCriteria& to, const char* endpoint)
{
auto_ptr<Envelope> env(EnvelopeBuilder::buildEnvelope());
Body* body = BodyBuilder::buildBody();
env->setBody(body);
body->getUnknownXMLObjects().push_back(request);
- m_soaper.send(*env.get(), peer, endpoint);
+ m_soaper.send(*env.get(), from, to, endpoint);
m_correlate = XMLString::replicate(request->getRequestID());
}
* <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 criteria terms
+ * @param to peer to send message to, expressed in metadata criteria terms
+ * @param from identity of sending application
* @param endpoint URL of endpoint to recieve message
*/
- virtual void sendSAML(RequestAbstractType* request, saml2md::MetadataCredentialCriteria& peer, const char* endpoint);
+ virtual void sendSAML(RequestAbstractType* request, const char* from, saml2md::MetadataCredentialCriteria& to, const char* endpoint);
/**
* Specialized method for receiving SAML 2.0 responses. The SOAP layer will be
using namespace xmltooling;
using namespace std;
-void SAML2SOAPClient::sendSAML(RequestAbstractType* request, MetadataCredentialCriteria& peer, const char* endpoint)
+void SAML2SOAPClient::sendSAML(RequestAbstractType* request, const char* from, MetadataCredentialCriteria& to, const char* endpoint)
{
auto_ptr<Envelope> env(EnvelopeBuilder::buildEnvelope());
Body* body = BodyBuilder::buildBody();
env->setBody(body);
body->getUnknownXMLObjects().push_back(request);
- m_soaper.send(*env.get(), peer, endpoint);
+ m_soaper.send(*env.get(), from, to, endpoint);
m_correlate = XMLString::replicate(request->getID());
}