27std::string
XrdHttpTpcUtils::prepareOpenURL(
const std::string & reqResource, std::map<std::string,std::string> & reqHeaders,
const std::map<std::string,std::string> & hdr2cgimap) {
29 std::stringstream opaque;
34 if (iter != reqHeaders.end() && !iter->second.empty()) {
36 std::istringstream requestStream(iter->second);
38 while (std::getline(requestStream, token,
'&')) {
41 }
else if (!strncmp(token.c_str(),
"authz=", 6)) {
42 if (!has_authz_header) {
43 reqHeaders[
"Authorization"] = token.substr(6);
44 has_authz_header =
true;
47 opaque <<
"&" << token;
53 for(
auto & hdr2cgi : hdr2cgimap) {
54 auto it = std::find_if(reqHeaders.begin(),reqHeaders.end(),[&hdr2cgi](
const auto & elt){
55 return !strcasecmp(elt.first.c_str(),hdr2cgi.first.c_str());
57 if(it != reqHeaders.end()) {
58 opaque <<
"&" << hdr2cgi.second <<
"=" << it->second;
62 return reqResource + opaque.str();