LIBS="-lxmltooling $LIBS"
AC_CHECK_HEADER([xmltooling/XMLToolingConfig.h],,AC_MSG_ERROR([unable to find xmltooling header files]))
AC_TRY_LINK(
- [#include <xmltooling/XMLToolingConfig.h>
-#include <xmltooling/version.h>],
- [#if _XMLTOOLING_VERSION >= 10200
-xmltooling::XMLToolingConfig::getConfig();
-#else
-#error Need XMLTooling version 1.2 or higher
-#endif],
- [AC_DEFINE(HAVE_XMLTOOLING,1,[Define if xmltooling library was found])],
- [AC_MSG_ERROR([unable to link with XMLTooling, or version was too old])])
+ [#include <xmltooling/io/HTTPResponse.h>],
+ [xmltooling::HTTPResponse::sanitizeURL("http://test")],
+ [AC_DEFINE(HAVE_XMLTOOLING,1,[Define if xmltooling library was found])],
+ [AC_MSG_ERROR([unable to link with XMLTooling, or version was too old])])
# Check for unit test support
CXXTEST="/usr/bin/cxxtestgen.pl"
xmltooling::NDC ndc("encode");
#endif
Category& log = Category::getInstance(SAML_LOGCAT".MessageEncoder.SAML1POST");
+ log.debug("validating input");
TemplateEngine* engine = XMLToolingConfig::getConfig().getTemplateEngine();
- if (!engine)
- throw BindingException("Encoding response using POST requires a TemplateEngine instance.");
-
- log.debug("validating input");
+ if (!engine || !destination)
+ throw BindingException("Encoding response using POST requires a TemplateEngine instance and a destination.");
+ HTTPResponse::sanitizeURL(destination);
if (xmlObject->getParent())
throw BindingException("Cannot encode XML content with parent.");
Response* response = dynamic_cast<Response*>(xmlObject);
xmltooling::NDC ndc("encode");
#endif
Category& log = Category::getInstance(SAML_LOGCAT".MessageEncoder.SAML2Artifact");
-
log.debug("validating input");
+ if (!destination)
+ throw BindingException("Encoding response requires a destination.");
HTTPResponse* httpResponse=dynamic_cast<HTTPResponse*>(&genericResponse);
if (!httpResponse)
throw BindingException("Unable to cast response interface to HTTPResponse type.");
if (relayState && strlen(relayState)>80)
throw BindingException("RelayState cannot exceed 80 bytes in length.");
-
if (xmlObject->getParent())
throw BindingException("Cannot encode XML content with parent.");
TemplateEngine* engine = XMLToolingConfig::getConfig().getTemplateEngine();
if (!engine)
throw BindingException("Encoding artifact using POST requires a TemplateEngine instance.");
+ HTTPResponse::sanitizeURL(destination);
ifstream infile(m_template.c_str());
if (!infile)
throw BindingException("Failed to open HTML template for POST response ($1).", params(1,m_template.c_str()));
xmltooling::NDC ndc("encode");
#endif
Category& log = Category::getInstance(SAML_LOGCAT".MessageEncoder.SAML2POST");
+ log.debug("validating input");
TemplateEngine* engine = XMLToolingConfig::getConfig().getTemplateEngine();
- if (!engine)
- throw BindingException("Encoding message using POST requires a TemplateEngine instance.");
-
- log.debug("validating input");
+ if (!engine || !destination)
+ throw BindingException("Encoding message using POST requires a TemplateEngine instance and a destination.");
+ HTTPResponse::sanitizeURL(destination);
if (xmlObject->getParent())
throw BindingException("Cannot encode XML content with parent.");