19 std::ifstream file(token_file);
27 constexpr std::streamsize max_token_file_size = 10 * 1024;
29 std::string content(max_token_file_size,
'\0');
30 file.read(&content[0], max_token_file_size);
31 content.resize(file.gcount());
33 std::string src_token;
34 std::string dst_token;
36 if (
const auto json = nlohmann::json::parse(content,
nullptr,
false);
json.is_object())
38 const auto read_token = [&
json, log] (
const char *key, std::string &token)
40 if (
const auto value =
json.find(key); value !=
json.end() && value->is_string() && !value->get_ref<
const std::string &>().empty())
41 token = value->get_ref<
const std::string &>();
46 read_token(
"src", src_token);
47 read_token(
"dst", dst_token);
51 std::istringstream lines(content);
52 std::getline(lines, src_token);
53 std::getline(lines, dst_token);
56 if (src_token.empty() && dst_token.empty())
65 headers.emplace_back(
"Authorization"s,
"Bearer "s + token);
68 add_token(src_hdrs, src_token);
69 add_token(dst_hdrs, dst_token);