return session;
}
-static char _x2c(const char *what)\r
-{\r
- register char digit;\r
-\r
- digit = (what[0] >= 'A' ? ((what[0] & 0xdf) - 'A')+10 : (what[0] - '0'));\r
- digit *= 16;\r
- digit += (what[1] >= 'A' ? ((what[1] & 0xdf) - 'A')+10 : (what[1] - '0'));\r
- return(digit);\r
-}\r
+static char _x2c(const char *what)
+{
+ register char digit;
+
+ digit = (what[0] >= 'A' ? ((what[0] & 0xdf) - 'A')+10 : (what[0] - '0'));
+ digit *= 16;
+ digit += (what[1] >= 'A' ? ((what[1] & 0xdf) - 'A')+10 : (what[1] - '0'));
+ return(digit);
+}
void AbstractSPRequest::setRequestURI(const char* uri)
{
- // Fix for bug 574, secadv 20061002\r
- // Unescape URI up to query string delimiter by looking for %XX escapes.\r
- // Adapted from Apache's util.c, ap_unescape_url function.\r
- if (uri) {\r
- while (*uri) {\r
- if (*uri == '?') {\r
- m_uri += uri;\r
- break;\r
- }\r
- else if (*uri == ';') {\r
- // If this is Java being stupid, skip everything up to the query string, if any.\r
- if (!strncmp(uri, ";jsessionid=", 12)) {\r
- if (uri = strchr(uri, '?'))\r
- m_uri += uri;\r
- break;\r
- }\r
- else {\r
- m_uri += *uri;\r
- }\r
- }\r
- else if (*uri != '%') {\r
- m_uri += *uri;\r
- }\r
- else {\r
- ++uri;\r
- if (!isxdigit(*uri) || !isxdigit(*(uri+1)))\r
- throw ConfigurationException("Bad request, contained unsupported encoded characters.");\r
- m_uri += _x2c(uri);\r
- ++uri;\r
- }\r
- ++uri;\r
- }\r
- }\r
+ // Fix for bug 574, secadv 20061002
+ // Unescape URI up to query string delimiter by looking for %XX escapes.
+ // Adapted from Apache's util.c, ap_unescape_url function.
+ if (uri) {
+ while (*uri) {
+ if (*uri == '?') {
+ m_uri += uri;
+ break;
+ }
+ else if (*uri == ';') {
+ // If this is Java being stupid, skip everything up to the query string, if any.
+ if (!strncmp(uri, ";jsessionid=", 12)) {
+ if (uri = strchr(uri, '?'))
+ m_uri += uri;
+ break;
+ }
+ else {
+ m_uri += *uri;
+ }
+ }
+ else if (*uri != '%') {
+ m_uri += *uri;
+ }
+ else {
+ ++uri;
+ if (!isxdigit(*uri) || !isxdigit(*(uri+1)))
+ throw ConfigurationException("Bad request, contained unsupported encoded characters.");
+ m_uri += _x2c(uri);
+ ++uri;
+ }
+ ++uri;
+ }
+ }
}
const char* AbstractSPRequest::getRequestURL() const
// We're done. Everything is okay. Nothing to report. Nothing to do..
// Let the caller decide how to proceed.
request.log(SPRequest::SPDebug, "doAuthentication succeeded");
- return make_pair(false,0);
+ return make_pair(false,0L);
}
catch (exception& e) {
TemplateParameters tp(&e);
if (requireSession)
throw opensaml::RetryableProfileException("Unable to obtain session to export to request.");
else
- return make_pair(false,0); // just bail silently
+ return make_pair(false,0L); // just bail silently
}
request.setHeader("Shib-Application-ID", app->getId());
request.setHeader(a->first.c_str(), header.c_str());
}
- return make_pair(false,0);
+ return make_pair(false,0L);
}
catch (exception& e) {
TemplateParameters tp(&e);
m_delimeter = static_cast<char>(val.integer());
val = in.first().first();
while (val.name() && val.string()) {
- m_values.push_back(std::make_pair(val.name(), val.string()));
+ m_values.push_back(std::make_pair(std::string(val.name()), std::string(val.string())));
val = in.first().next();
}
}
if (role)
m_issuer = dynamic_cast<opensaml::saml2md::EntityDescriptor*>(role->getParent())->getEntityID();
for (std::vector<Attribute*>::const_iterator a = attributes.begin(); a != attributes.end(); ++a)
- m_attributes.insert(std::make_pair((*a)->getId(), *a));
+ m_attributes.insert(std::multimap<std::string,Attribute*>::value_type((*a)->getId(), *a));
}
virtual ~BasicFilteringContext() {}
{
const EntityDescriptor* entity = role ? dynamic_cast<const EntityDescriptor*>(role->getParent()) : NULL;
const PropertySet* relyingParty = application.getRelyingParty(entity);
- pair<bool,const char*> flag = signIfPossible ? make_pair(true,"true") : relyingParty->getString("signing");
+ pair<bool,const char*> flag = signIfPossible ? make_pair(true,(const char*)"true") : relyingParty->getString("signing");
if (role && flag.first &&
(!strcmp(flag.second, "true") ||
(encoder.isUserAgentPresent() && !strcmp(flag.second, "front")) ||
#ifndef SHIBSP_LITE
if (SPConfig::getConfig().isEnabled(SPConfig::OutOfProcess)) {
m_decoder = SAMLConfig::getConfig().MessageDecoderManager.newPlugin(
- getString("Binding").second,make_pair(e,shibspconstants::SHIB2SPCONFIG_NS)
+ getString("Binding").second, pair<const DOMElement*,const XMLCh*>(e,shibspconstants::SHIB2SPCONFIG_NS)
);
m_decoder->setArtifactResolver(SPConfig::getConfig().getArtifactResolver());
}
{
// If we're inside a chain, so do nothing.
if (getParent())
- return make_pair(false,0);
+ return make_pair(false,0L);
// If this isn't a LogoutInitiator, we only "continue" a notification loop, rather than starting one.
if (!m_initiator && !request.getParameter("notifying"))
- return make_pair(false,0);
+ return make_pair(false,0L);
// Try another front-channel notification. No extra parameters and the session is implicit.
pair<bool,long> ret = notifyFrontChannel(request.getApplication(), request, request);
if (ret.first)
return ret;
- return make_pair(false,0);
+ return make_pair(false,0L);
}
void LogoutHandler::receive(DDF& in, ostream& out)
// Fetch the next front notification URL and bump the index for the next round trip.
string loc = application.getNotificationURL(request.getRequestURL(), true, index++);
if (loc.empty())
- return make_pair(false,0);
+ return make_pair(false,0L);
const URLEncoder* encoder = XMLToolingConfig::getConfig().getURLEncoder();
istringstream s(h["data"].string());
return make_pair(true, request.sendResponse(s, h["status"].integer()));
}
- return make_pair(false,0);
+ return make_pair(false,0L);
}
HTTPRequest* RemotedHandler::getRequest(DDF& in) const