Skip to content
This repository was archived by the owner on Mar 24, 2026. It is now read-only.

Commit 6a2d1a3

Browse files
KenGordonDomAyre
authored andcommitted
Only populate secondary endpoints if the config is set
1 parent b222e35 commit 6a2d1a3

2 files changed

Lines changed: 24 additions & 15 deletions

File tree

services/common/clients/config/trusted_server_config_client.cc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,7 @@ absl::Status TrustedServersConfigClient::Init(
109109

110110
bool TrustedServersConfigClient::HasParameter(
111111
absl::string_view name) const noexcept {
112-
return config_entries_map_.contains(name);
112+
return config_entries_map_.contains(name) && config_entries_map_.at(name) != kEmptyValue;
113113
}
114114

115115
absl::string_view TrustedServersConfigClient::GetStringParameter(

services/common/encryption/key_fetcher_factory.cc

Lines changed: 23 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ std::unique_ptr<KeyFetcherManagerInterface> CreateKeyFetcherManager(
8686
return std::make_unique<server_common::FakeKeyFetcherManager>();
8787
}
8888

89-
google::scp::cpio::PrivateKeyVendingEndpoint primary, secondary;
89+
google::scp::cpio::PrivateKeyVendingEndpoint primary;
9090
primary.account_identity =
9191
config_client.GetStringParameter(PRIMARY_COORDINATOR_ACCOUNT_IDENTITY);
9292
primary.private_key_vending_service_endpoint =
@@ -95,33 +95,42 @@ std::unique_ptr<KeyFetcherManagerInterface> CreateKeyFetcherManager(
9595
primary.service_region =
9696
config_client.GetStringParameter(PRIMARY_COORDINATOR_REGION);
9797

98-
secondary.account_identity =
99-
config_client.GetStringParameter(SECONDARY_COORDINATOR_ACCOUNT_IDENTITY);
100-
secondary.private_key_vending_service_endpoint =
101-
config_client.GetStringParameter(
102-
SECONDARY_COORDINATOR_PRIVATE_KEY_ENDPOINT);
103-
secondary.service_region =
104-
config_client.GetStringParameter(SECONDARY_COORDINATOR_REGION);
105-
10698
if (config_client.HasParameter(GCP_PRIMARY_WORKLOAD_IDENTITY_POOL_PROVIDER)) {
10799
PS_VLOG(3) << "Found GCP Workload Identity Pool Provider, proceeding...";
108100
primary.gcp_private_key_vending_service_cloudfunction_url =
109101
config_client.GetStringParameter(
110102
GCP_PRIMARY_KEY_SERVICE_CLOUD_FUNCTION_URL);
111103
primary.gcp_wip_provider = config_client.GetStringParameter(
112104
GCP_PRIMARY_WORKLOAD_IDENTITY_POOL_PROVIDER);
105+
}
106+
107+
std::vector<google::scp::cpio::PrivateKeyVendingEndpoint> secondaries{};
108+
if (config_client.HasParameter(SECONDARY_COORDINATOR_PRIVATE_KEY_ENDPOINT)) {
109+
google::scp::cpio::PrivateKeyVendingEndpoint secondary;
113110

114-
secondary.gcp_private_key_vending_service_cloudfunction_url =
111+
secondary.account_identity =
112+
config_client.GetStringParameter(SECONDARY_COORDINATOR_ACCOUNT_IDENTITY);
113+
secondary.private_key_vending_service_endpoint =
115114
config_client.GetStringParameter(
116-
GCP_SECONDARY_KEY_SERVICE_CLOUD_FUNCTION_URL);
117-
secondary.gcp_wip_provider = config_client.GetStringParameter(
118-
GCP_SECONDARY_WORKLOAD_IDENTITY_POOL_PROVIDER);
115+
SECONDARY_COORDINATOR_PRIVATE_KEY_ENDPOINT);
116+
secondary.service_region =
117+
config_client.GetStringParameter(SECONDARY_COORDINATOR_REGION);
118+
119+
if (config_client.HasParameter(GCP_PRIMARY_WORKLOAD_IDENTITY_POOL_PROVIDER)) {
120+
secondary.gcp_private_key_vending_service_cloudfunction_url =
121+
config_client.GetStringParameter(
122+
GCP_SECONDARY_KEY_SERVICE_CLOUD_FUNCTION_URL);
123+
secondary.gcp_wip_provider = config_client.GetStringParameter(
124+
GCP_SECONDARY_WORKLOAD_IDENTITY_POOL_PROVIDER);
125+
}
126+
127+
secondaries.push_back(secondary);
119128
}
120129

121130
absl::Duration private_key_ttl = absl::Seconds(
122131
config_client.GetIntParameter(PRIVATE_KEY_CACHE_TTL_SECONDS));
123132
std::unique_ptr<PrivateKeyFetcherInterface> private_key_fetcher =
124-
server_common::PrivateKeyFetcherFactory::Create(primary, {secondary},
133+
server_common::PrivateKeyFetcherFactory::Create(primary, secondaries,
125134
private_key_ttl);
126135

127136
absl::Duration key_refresh_flow_run_freq = absl::Seconds(

0 commit comments

Comments
 (0)