26std::string
XrdTpcUtils::prepareOpenURL(
const std::string & reqResource, std::map<std::string,std::string> & reqHeaders,
const std::map<std::string,std::string> & hdr2cgimap,
bool & hasSetOpaque) {
28 bool found_first_header =
false;
29 std::stringstream opaque;
31 if (iter != reqHeaders.end() && !iter->second.empty()) {
33 std::istringstream requestStream(iter->second);
35 while (std::getline(requestStream, token,
'&')) {
38 }
else if (!strncmp(token.c_str(),
"authz=", 6)) {
39 if (!has_authz_header) {
40 reqHeaders[
"Authorization"] = token.substr(6);
41 has_authz_header =
true;
44 opaque << (found_first_header ?
"&" :
"?") << token;
45 found_first_header =
true;
51 for(
auto & hdr2cgi : hdr2cgimap) {
52 auto it = std::find_if(reqHeaders.begin(),reqHeaders.end(),[&hdr2cgi](
const auto & elt){
53 return !strcasecmp(elt.first.c_str(),hdr2cgi.first.c_str());
55 if(it != reqHeaders.end()) {
56 opaque << (found_first_header ?
"&" :
"?") << hdr2cgi.second <<
"=" << it->second;
57 found_first_header =
true;
60 hasSetOpaque = found_first_header;
61 return reqResource + opaque.str();
static std::string prepareOpenURL(const std::string &reqResource, std::map< std::string, std::string > &reqHeaders, const std::map< std::string, std::string > &hdr2cgimap, bool &hasSetOpaque)