/*
- * Copyright 2001-2009 Internet2
+ * Copyright 2001-2010 Internet2
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
GenericResponse& genericResponse,
XMLObject* xmlObject,
const char* destination,
- const EntityDescriptor* recipient=NULL,
- const char* relayState=NULL,
- const ArtifactGenerator* artifactGenerator=NULL,
- const Credential* credential=NULL,
- const XMLCh* signatureAlg=NULL,
- const XMLCh* digestAlg=NULL
+ const EntityDescriptor* recipient=nullptr,
+ const char* relayState=nullptr,
+ const ArtifactGenerator* artifactGenerator=nullptr,
+ const Credential* credential=nullptr,
+ const XMLCh* signatureAlg=nullptr,
+ const XMLCh* digestAlg=nullptr
) const;
protected:
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);
if (!relayState)
throw BindingException("SAML 1.x POST Encoder requires relay state (TARGET) value.");
- DOMElement* rootElement = NULL;
+ DOMElement* rootElement = nullptr;
if (credential) {
// Signature based on native XML signing.
if (response->getSignature()) {
// Sign response while marshalling.
vector<Signature*> sigs(1,sig);
- rootElement = response->marshall((DOMDocument*)NULL,&sigs,credential);
+ rootElement = response->marshall((DOMDocument*)nullptr,&sigs,credential);
}
}
else {