/**
* Constructor
*
- * @param soaper reference to SOAPClient object to use for call
+ * @param soaper reference to SOAPClient object to use for call
+ * @param fatalSAMLErrors true iff a non-successful SAML Status code should be fatal
*/
- SAML1SOAPClient(SOAPClient& soaper) : m_soaper(soaper), m_correlate(NULL) {
+ SAML1SOAPClient(SOAPClient& soaper, bool fatalSAMLErrors=true) : m_soaper(soaper), m_fatal(fatalSAMLErrors), m_correlate(NULL) {
}
virtual ~SAML1SOAPClient() {
*/
virtual bool handleError(const Status& status);
- /** SOAP client object */
+ /** SOAP client object. */
SOAPClient& m_soaper;
+ /** Flag controlling default error handler. */
+ bool m_fatal;
+
private:
XMLCh* m_correlate;
};
(code ? code->toString().c_str() : "no code"),
(str.get() ? str.get() : "no message")
);
- return true;
+ return m_fatal;
}
/**
* Constructor
*
- * @param soaper reference to SOAPClient object to use for call
+ * @param soaper reference to SOAPClient object to use for call
+ * @param fatalSAMLErrors true iff a non-successful SAML Status code should be fatal
*/
- SAML2SOAPClient(SOAPClient& soaper) : m_soaper(soaper), m_correlate(NULL) {
+ SAML2SOAPClient(SOAPClient& soaper, bool fatalSAMLErrors=true) : m_soaper(soaper), m_fatal(fatalSAMLErrors), m_correlate(NULL) {
}
-
+
virtual ~SAML2SOAPClient() {
xercesc::XMLString::release(&m_correlate);
}
/** SOAP client object */
SOAPClient& m_soaper;
+ /** Flag controlling default error handler. */
+ bool m_fatal;
+
private:
XMLCh* m_correlate;
};
(code.get() ? code.get() : "no code"),
(str.get() ? str.get() : "no message")
);
- return true;
+ return m_fatal;
}