diff options
author | Ola Aunronning <olaa@yahooinc.com> | 2023-04-27 10:28:49 +0200 |
---|---|---|
committer | Ola Aunronning <olaa@yahooinc.com> | 2023-04-27 10:28:49 +0200 |
commit | 9c6234c28f24032101fbe9203aeceefcdbe9f255 (patch) | |
tree | e3aa4e0c705987cfe0b5fc7d3e2b036df69ebaf2 | |
parent | a0621e8ce686f9a08ac7d619b93ac56c88d45d68 (diff) |
Add ServiceIdentityProviderProvider
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(); + } +} |