1
#include "source/extensions/http/injected_credentials/generic/generic_impl.h"
2

            
3
#include "absl/strings/str_cat.h"
4

            
5
namespace Envoy {
6
namespace Extensions {
7
namespace Http {
8
namespace InjectedCredentials {
9
namespace Generic {
10

            
11
absl::Status GenericCredentialInjector::inject(Envoy::Http::RequestHeaderMap& headers,
12
51
                                               bool overwrite) {
13
51
  if (!overwrite && !headers.get(header_).empty()) {
14
7
    return absl::AlreadyExistsError("Credential already exists in the header");
15
7
  }
16

            
17
44
  if (secret_reader_->credential().empty()) {
18
2
    return absl::NotFoundError("Failed to get credential from secret");
19
2
  }
20

            
21
42
  const std::string header_value = absl::StrCat(header_value_prefix_, secret_reader_->credential());
22
42
  headers.setCopy(header_, header_value);
23
42
  return absl::OkStatus();
24
44
}
25

            
26
} // namespace Generic
27
} // namespace InjectedCredentials
28
} // namespace Http
29
} // namespace Extensions
30
} // namespace Envoy