using namespace log4cpp;
using namespace std;
-void SAML2SOAPClient::sendSAML(RequestAbstractType* request, const RoleDescriptor& peer, const char* endpoint)
+void SAML2SOAPClient::sendSAML(RequestAbstractType* request, MetadataCredentialCriteria& peer, const char* endpoint)
{
auto_ptr<Envelope> env(EnvelopeBuilder::buildEnvelope());
Body* body = BodyBuilder::buildBody();
if (response) {
// Check InResponseTo.
- if (m_correlate && !XMLString::equals(m_correlate, response->getInResponseTo()))
+ if (m_correlate && response->getInResponseTo() && !XMLString::equals(m_correlate, response->getInResponseTo()))
throw BindingException("InResponseTo attribute did not correlate with the Request ID.");
// Check Status.
}
m_soaper.getPolicy().evaluate(*response);
+ if (!m_soaper.getPolicy().isSecure())
+ throw BindingException("Security policy could not authenticate the message.");
+
env.release();
body->detach(); // frees Envelope
response->detach(); // frees Body