diff --git a/src/core/lib/security/credentials/external/aws_external_account_credentials.h b/src/core/lib/security/credentials/external/aws_external_account_credentials.h index 192894221d7..a3a41236615 100644 --- a/src/core/lib/security/credentials/external/aws_external_account_credentials.h +++ b/src/core/lib/security/credentials/external/aws_external_account_credentials.h @@ -24,6 +24,8 @@ #include #include +#include "absl/strings/string_view.h" + #include "src/core/lib/gprpp/orphanable.h" #include "src/core/lib/gprpp/ref_counted_ptr.h" #include "src/core/lib/http/httpcli.h" diff --git a/src/core/lib/security/credentials/external/external_account_credentials.cc b/src/core/lib/security/credentials/external/external_account_credentials.cc index a0b52c14e27..8aa7eca6144 100644 --- a/src/core/lib/security/credentials/external/external_account_credentials.cc +++ b/src/core/lib/security/credentials/external/external_account_credentials.cc @@ -28,6 +28,7 @@ #include "absl/status/status.h" #include "absl/status/statusor.h" +#include "absl/strings/escaping.h" #include "absl/strings/match.h" #include "absl/strings/numbers.h" #include "absl/strings/str_cat.h" @@ -275,8 +276,7 @@ std::string ExternalAccountCredentials::debug_string() { std::string ExternalAccountCredentials::MetricsHeaderValue() { return absl::StrFormat( - "gl-cpp/unknown" - " auth/%s google-byoid-sdk source/%s sa-impersonation/%v " + "gl-cpp/unknown auth/%s google-byoid-sdk source/%s sa-impersonation/%v " "config-lifetime/%v", grpc_version_string(), CredentialSourceType(), !options_.service_account_impersonation_url.empty(), @@ -346,12 +346,9 @@ void ExternalAccountCredentials::ExchangeToken( if (add_authorization_header) { std::string raw_cred = absl::StrFormat("%s:%s", options_.client_id, options_.client_secret); - char* encoded_cred = - grpc_base64_encode(raw_cred.c_str(), raw_cred.length(), 0, 0); - std::string str = absl::StrFormat("Basic %s", std::string(encoded_cred)); + std::string str = absl::StrFormat("Basic %s", absl::Base64Escape(raw_cred)); headers[2].key = gpr_strdup("Authorization"); headers[2].value = gpr_strdup(str.c_str()); - gpr_free(encoded_cred); } request.hdrs = headers; std::vector body_parts; diff --git a/src/core/lib/security/credentials/external/file_external_account_credentials.h b/src/core/lib/security/credentials/external/file_external_account_credentials.h index edcb46392a4..c8cf12177bd 100644 --- a/src/core/lib/security/credentials/external/file_external_account_credentials.h +++ b/src/core/lib/security/credentials/external/file_external_account_credentials.h @@ -23,6 +23,8 @@ #include #include +#include "absl/strings/string_view.h" + #include "src/core/lib/gprpp/ref_counted_ptr.h" #include "src/core/lib/iomgr/error.h" #include "src/core/lib/security/credentials/external/external_account_credentials.h" diff --git a/src/core/lib/security/credentials/external/url_external_account_credentials.h b/src/core/lib/security/credentials/external/url_external_account_credentials.h index 5915c8b1d6c..9331412d321 100644 --- a/src/core/lib/security/credentials/external/url_external_account_credentials.h +++ b/src/core/lib/security/credentials/external/url_external_account_credentials.h @@ -24,6 +24,8 @@ #include #include +#include "absl/strings/string_view.h" + #include "src/core/lib/gprpp/orphanable.h" #include "src/core/lib/gprpp/ref_counted_ptr.h" #include "src/core/lib/http/httpcli.h"