aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorOla Aunronning <olaa@yahooinc.com>2023-04-27 10:28:49 +0200
committerOla Aunronning <olaa@yahooinc.com>2023-04-27 10:28:49 +0200
commit9c6234c28f24032101fbe9203aeceefcdbe9f255 (patch)
treee3aa4e0c705987cfe0b5fc7d3e2b036df69ebaf2
parenta0621e8ce686f9a08ac7d619b93ac56c88d45d68 (diff)
Add ServiceIdentityProviderProvider
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/container/xml/ContainerModelBuilder.java3
-rw-r--r--vespa-athenz/src/main/java/com/yahoo/vespa/athenz/identityprovider/client/ServiceIdentityProviderProvider.java32
2 files changed, 35 insertions, 0 deletions
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/container/xml/ContainerModelBuilder.java b/config-model/src/main/java/com/yahoo/vespa/model/container/xml/ContainerModelBuilder.java
index cf6ca4bed3d..96be5190a51 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/container/xml/ContainerModelBuilder.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/container/xml/ContainerModelBuilder.java
@@ -1176,6 +1176,9 @@ public class ContainerModelBuilder extends ConfigModelBuilder<ContainerModel> {
cluster.removeComponent(ComponentId.fromString("com.yahoo.container.jdisc.AthenzIdentityProviderProvider"));
cluster.addComponent(identityProvider);
+ var serviceIdentityProviderProvider = "com.yahoo.vespa.athenz.identityprovider.client.ServiceIdentityProviderProvider";
+ cluster.addComponent(new SimpleComponent(new ComponentModel(serviceIdentityProviderProvider, serviceIdentityProviderProvider, "vespa-athenz")));
+
cluster.getContainers().forEach(container -> {
container.setProp("identity.domain", domain.value());
container.setProp("identity.service", service.value());
diff --git a/vespa-athenz/src/main/java/com/yahoo/vespa/athenz/identityprovider/client/ServiceIdentityProviderProvider.java b/vespa-athenz/src/main/java/com/yahoo/vespa/athenz/identityprovider/client/ServiceIdentityProviderProvider.java
new file mode 100644
index 00000000000..d9458f32b98
--- /dev/null
+++ b/vespa-athenz/src/main/java/com/yahoo/vespa/athenz/identityprovider/client/ServiceIdentityProviderProvider.java
@@ -0,0 +1,32 @@
+package com.yahoo.vespa.athenz.identityprovider.client;
+
+import com.yahoo.container.di.componentgraph.Provider;
+import com.yahoo.container.jdisc.athenz.AthenzIdentityProvider;
+import com.yahoo.vespa.athenz.identity.ServiceIdentityProvider;
+
+import javax.inject.Inject;
+
+/**
+ * @author olaa
+ */
+public class ServiceIdentityProviderProvider implements Provider<ServiceIdentityProvider> {
+
+ private AthenzIdentityProvider athenzIdentityProvider;
+
+ @Inject
+ public ServiceIdentityProviderProvider(AthenzIdentityProvider athenzIdentityProvider) {
+ this.athenzIdentityProvider = athenzIdentityProvider;
+ }
+
+ @Override
+ public ServiceIdentityProvider get() {
+ if (athenzIdentityProvider instanceof AthenzIdentityProviderImpl impl) return impl;
+ if (athenzIdentityProvider instanceof LegacyAthenzIdentityProviderImpl legacyImpl) return legacyImpl;
+ return null;
+ }
+
+ @Override
+ public void deconstruct() {
+ athenzIdentityProvider.deconstruct();
+ }
+}