diff options
author | Bjørn Christian Seime <bjorncs@oath.com> | 2018-04-26 17:17:20 +0200 |
---|---|---|
committer | Bjørn Christian Seime <bjorncs@oath.com> | 2018-04-26 17:36:38 +0200 |
commit | 0b47d31a315b005a9938feb97c660e2bc7fcda03 (patch) | |
tree | 0083da1b9aaed12de317894f31540b02d80acc33 /vespa-athenz | |
parent | 6edcf30c6fbb9ae2add61215b01c2d6521a2049a (diff) |
Use separate types for tenant and vespa identity providers
- Add ServiceIdentityProvider
- Remove AthenzSslContextProvider
- Change SiaIdentityProvider to implement ServiceIdentityProvider
- Change AthenzIdentityProviderImpl to implement both ServiceIdentityProvider and AthenzIdentityProvider
- Stop using AthenzIdentityProvider for internal use
Diffstat (limited to 'vespa-athenz')
3 files changed, 32 insertions, 17 deletions
diff --git a/vespa-athenz/src/main/java/com/yahoo/vespa/athenz/identity/ServiceIdentityProvider.java b/vespa-athenz/src/main/java/com/yahoo/vespa/athenz/identity/ServiceIdentityProvider.java new file mode 100644 index 00000000000..6b318fb16be --- /dev/null +++ b/vespa-athenz/src/main/java/com/yahoo/vespa/athenz/identity/ServiceIdentityProvider.java @@ -0,0 +1,18 @@ +// Copyright 2018 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. +package com.yahoo.vespa.athenz.identity; + +import com.yahoo.container.jdisc.athenz.AthenzIdentityProvider; +import com.yahoo.vespa.athenz.api.AthenzService; + +import javax.net.ssl.SSLContext; + +/** + * A interface for types that provides a service identity. + * Some similarities to {@link AthenzIdentityProvider}, but this type is not public api and intended for internal use. + * + * @author bjorncs + */ +public interface ServiceIdentityProvider { + AthenzService identity(); + SSLContext getIdentitySslContext(); +} diff --git a/vespa-athenz/src/main/java/com/yahoo/vespa/athenz/identity/SiaIdentityProvider.java b/vespa-athenz/src/main/java/com/yahoo/vespa/athenz/identity/SiaIdentityProvider.java index 437da05dfdd..161438e2bbe 100644 --- a/vespa-athenz/src/main/java/com/yahoo/vespa/athenz/identity/SiaIdentityProvider.java +++ b/vespa-athenz/src/main/java/com/yahoo/vespa/athenz/identity/SiaIdentityProvider.java @@ -3,7 +3,6 @@ package com.yahoo.vespa.athenz.identity; import com.google.inject.Inject; import com.yahoo.component.AbstractComponent; -import com.yahoo.container.jdisc.athenz.AthenzIdentityProvider; import com.yahoo.log.LogLevel; import com.yahoo.vespa.athenz.api.AthenzService; import com.yahoo.vespa.athenz.tls.KeyStoreType; @@ -27,7 +26,7 @@ import java.util.logging.Logger; * @author mortent * @author bjorncs */ -public class SiaIdentityProvider extends AbstractComponent implements AthenzIdentityProvider { +public class SiaIdentityProvider extends AbstractComponent implements ServiceIdentityProvider { private static final Logger log = Logger.getLogger(SiaIdentityProvider.class.getName()); @@ -83,13 +82,8 @@ public class SiaIdentityProvider extends AbstractComponent implements AthenzIden } @Override - public String getDomain() { - return service.getDomain().getName(); - } - - @Override - public String getService() { - return service.getName(); + public AthenzService identity() { + return service; } @Override diff --git a/vespa-athenz/src/main/java/com/yahoo/vespa/athenz/identityprovider/client/AthenzIdentityProviderImpl.java b/vespa-athenz/src/main/java/com/yahoo/vespa/athenz/identityprovider/client/AthenzIdentityProviderImpl.java index e41eab025d5..fc15442be84 100644 --- a/vespa-athenz/src/main/java/com/yahoo/vespa/athenz/identityprovider/client/AthenzIdentityProviderImpl.java +++ b/vespa-athenz/src/main/java/com/yahoo/vespa/athenz/identityprovider/client/AthenzIdentityProviderImpl.java @@ -8,7 +8,7 @@ import com.yahoo.container.jdisc.athenz.AthenzIdentityProvider; import com.yahoo.container.jdisc.athenz.AthenzIdentityProviderException; import com.yahoo.jdisc.Metric; import com.yahoo.log.LogLevel; -import com.yahoo.vespa.athenz.api.AthenzIdentityCertificate; +import com.yahoo.vespa.athenz.identity.ServiceIdentityProvider; import com.yahoo.vespa.athenz.tls.SslContextBuilder; import com.yahoo.vespa.defaults.Defaults; @@ -28,7 +28,7 @@ import static com.yahoo.vespa.athenz.tls.KeyStoreType.JKS; * @author mortent * @author bjorncs */ -public final class AthenzIdentityProviderImpl extends AbstractComponent implements AthenzIdentityProvider { +public final class AthenzIdentityProviderImpl extends AbstractComponent implements AthenzIdentityProvider, ServiceIdentityProvider { private static final Logger log = Logger.getLogger(AthenzIdentityProviderImpl.class.getName()); @@ -44,8 +44,7 @@ public final class AthenzIdentityProviderImpl extends AbstractComponent implemen private final AthenzCredentialsService athenzCredentialsService; private final ScheduledExecutorService scheduler; private final Clock clock; - private final String domain; - private final String service; + private final com.yahoo.vespa.athenz.api.AthenzService identity; @Inject public AthenzIdentityProviderImpl(IdentityConfig config, Metric metric) { @@ -69,8 +68,7 @@ public final class AthenzIdentityProviderImpl extends AbstractComponent implemen this.athenzCredentialsService = athenzCredentialsService; this.scheduler = scheduler; this.clock = clock; - this.domain = config.domain(); - this.service = config.service(); + this.identity = new com.yahoo.vespa.athenz.api.AthenzService(config.domain(), config.service()); registerInstance(); } @@ -85,13 +83,18 @@ public final class AthenzIdentityProviderImpl extends AbstractComponent implemen } @Override + public com.yahoo.vespa.athenz.api.AthenzService identity() { + return identity; + } + + @Override public String getDomain() { - return domain; + return identity.getDomain().getName(); } @Override public String getService() { - return service; + return identity.getName(); } @Override |