loc += (strchr(destination,'?') ? '&' : '?');
const URLEncoder* escaper = XMLToolingConfig::getConfig().getURLEncoder();
loc = loc + "SAMLart=" + escaper->encode(artifact->encode().c_str());
- if (relayState)
+ if (relayState && *relayState)
loc = loc + "&RelayState=" + escaper->encode(relayState);
log.debug("message encoded, sending redirect to client");
return httpResponse->sendRedirect(loc.c_str());
TemplateEngine::TemplateParameters params;
params.m_map["action"] = destination;
params.m_map["SAMLart"] = artifact->encode();
- if (relayState)
+ if (relayState && *relayState)
params.m_map["RelayState"] = relayState;
stringstream s;
engine->run(infile, s, params);
// Start tracking data.
TemplateEngine::TemplateParameters pmap;
- if (relayState)
+ if (relayState && *relayState)
pmap.m_map["RelayState"] = relayState;
// Serialize the message.
if (credential && m_simple) {
log.debug("applying simple signature to message data");
string input = (request ? "SAMLRequest=" : "SAMLResponse=") + msg;
- if (relayState)
+ if (relayState && *relayState)
input = input + "&RelayState=" + relayState;
if (!signatureAlg)
signatureAlg = DSIGConstants::s_unicodeStrURIRSA_SHA1;
xmlbuf.erase();
xmlbuf.append(reinterpret_cast<char*>(encoded),len);
xmlbuf = (request ? "SAMLRequest=" : "SAMLResponse=") + escaper->encode(xmlbuf.c_str());
- if (relayState)
+ if (relayState && *relayState)
xmlbuf = xmlbuf + "&RelayState=" + escaper->encode(relayState);
if (credential) {