diff options
author | Ola Aunrønning <olaa@yahooinc.com> | 2023-04-26 09:57:56 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-04-26 09:57:56 +0200 |
commit | 5f9d7d50216da4850c793a2a63f8da7eefb55056 (patch) | |
tree | b41007ada3c803cc3282cc0556acbb13f3642e6a /vespa-athenz/src/main/java/com/yahoo/vespa/athenz/identityprovider/client/AthenzIdentityProviderProvider.java | |
parent | 9a4376dae10e986c7061633e5a02f18c24a951da (diff) | |
parent | 48b7ffe757ffa25bc3ca1eeaab8153db30623fa3 (diff) |
Merge pull request #26805 from vespa-engine/olaa/versioned-feature-flag
Write tenant service identity at same location as AthenzCredentialsService
Diffstat (limited to 'vespa-athenz/src/main/java/com/yahoo/vespa/athenz/identityprovider/client/AthenzIdentityProviderProvider.java')
-rw-r--r-- | vespa-athenz/src/main/java/com/yahoo/vespa/athenz/identityprovider/client/AthenzIdentityProviderProvider.java | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/vespa-athenz/src/main/java/com/yahoo/vespa/athenz/identityprovider/client/AthenzIdentityProviderProvider.java b/vespa-athenz/src/main/java/com/yahoo/vespa/athenz/identityprovider/client/AthenzIdentityProviderProvider.java new file mode 100644 index 00000000000..66dad931815 --- /dev/null +++ b/vespa-athenz/src/main/java/com/yahoo/vespa/athenz/identityprovider/client/AthenzIdentityProviderProvider.java @@ -0,0 +1,38 @@ +package com.yahoo.vespa.athenz.identityprovider.client; + +import com.yahoo.container.core.identity.IdentityConfig; +import com.yahoo.container.di.componentgraph.Provider; +import com.yahoo.container.jdisc.athenz.AthenzIdentityProvider; +import com.yahoo.jdisc.Metric; + +import javax.inject.Inject; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; + +/** + * @author olaa + */ +public class AthenzIdentityProviderProvider implements Provider<AthenzIdentityProvider> { + + private final Path NODE_ADMIN_MANAGED_IDENTITY_DOCUMENT = Paths.get("/var/lib/sia/vespa-tenant-identity-document.json"); + private final AthenzIdentityProvider athenzIdentityProvider; + + @Inject + public AthenzIdentityProviderProvider(IdentityConfig config, Metric metric) { + if (Files.exists(NODE_ADMIN_MANAGED_IDENTITY_DOCUMENT)) + athenzIdentityProvider = new AthenzIdentityProviderImpl(config, metric); + else + athenzIdentityProvider = new LegacyAthenzIdentityProviderImpl(config, metric); + } + + @Override + public void deconstruct() { + athenzIdentityProvider.deconstruct(); + } + + @Override + public AthenzIdentityProvider get() { + return athenzIdentityProvider; + } +} |