summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBjørn Christian Seime <bjorncs@oath.com>2018-03-16 13:30:02 +0100
committerBjørn Christian Seime <bjorncs@oath.com>2018-03-19 11:16:25 +0100
commitbb9526ee271e532f1a3325b9c63cee200e8d9388 (patch)
treebe21be1223d323fb620f35867bfd2232892e8e37
parentc83e96e6c6fce457ed9a951451e920d3cb8ceed2 (diff)
Remove methods for retrieving role certs
Role certs should be retrieved through SIA instead
-rw-r--r--controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/athenz/ZtsClient.java3
-rw-r--r--controller-server/src/main/java/com/yahoo/vespa/hosted/controller/athenz/impl/AthenzClientFactoryImpl.java2
-rw-r--r--controller-server/src/main/java/com/yahoo/vespa/hosted/controller/athenz/impl/ZtsClientImpl.java36
-rw-r--r--controller-server/src/main/java/com/yahoo/vespa/hosted/controller/athenz/mock/ZtsClientMock.java37
4 files changed, 2 insertions, 76 deletions
diff --git a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/athenz/ZtsClient.java b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/athenz/ZtsClient.java
index 7c1f8875fb8..eefd11bdeec 100644
--- a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/athenz/ZtsClient.java
+++ b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/athenz/ZtsClient.java
@@ -3,7 +3,6 @@ package com.yahoo.vespa.hosted.controller.api.integration.athenz;
import com.yahoo.vespa.athenz.api.AthenzDomain;
import com.yahoo.vespa.athenz.api.AthenzIdentity;
-import com.yahoo.vespa.athenz.api.AthenzRoleCertificate;
import java.util.List;
@@ -14,6 +13,4 @@ public interface ZtsClient {
List<AthenzDomain> getTenantDomainsForUser(AthenzIdentity principal);
- AthenzRoleCertificate getRoleCertificate(AthenzDomain roleDomain, String roleName);
-
}
diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/athenz/impl/AthenzClientFactoryImpl.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/athenz/impl/AthenzClientFactoryImpl.java
index 2d887f29174..893dafa5885 100644
--- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/athenz/impl/AthenzClientFactoryImpl.java
+++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/athenz/impl/AthenzClientFactoryImpl.java
@@ -51,7 +51,7 @@ public class AthenzClientFactoryImpl implements AthenzClientFactory {
*/
@Override
public ZtsClient createZtsClientWithServicePrincipal() {
- return new ZtsClientImpl(new ZTSClient(config.ztsUrl(), identityProvider.getIdentitySslContext()), getServicePrivateKey(), config);
+ return new ZtsClientImpl(new ZTSClient(config.ztsUrl(), identityProvider.getIdentitySslContext()), config);
}
/**
diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/athenz/impl/ZtsClientImpl.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/athenz/impl/ZtsClientImpl.java
index 841754782b8..c3ed8f0a99f 100644
--- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/athenz/impl/ZtsClientImpl.java
+++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/athenz/impl/ZtsClientImpl.java
@@ -1,23 +1,17 @@
// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.vespa.hosted.controller.athenz.impl;
-import com.yahoo.athenz.auth.util.Crypto;
-import com.yahoo.athenz.zts.RoleCertificateRequest;
import com.yahoo.athenz.zts.TenantDomains;
import com.yahoo.athenz.zts.ZTSClient;
import com.yahoo.athenz.zts.ZTSClientException;
import com.yahoo.log.LogLevel;
import com.yahoo.vespa.athenz.api.AthenzDomain;
import com.yahoo.vespa.athenz.api.AthenzIdentity;
-import com.yahoo.vespa.athenz.api.AthenzRoleCertificate;
import com.yahoo.vespa.athenz.api.AthenzService;
import com.yahoo.vespa.hosted.controller.api.integration.athenz.ZtsClient;
import com.yahoo.vespa.hosted.controller.api.integration.athenz.ZtsException;
import com.yahoo.vespa.hosted.controller.athenz.config.AthenzConfig;
-import java.security.PrivateKey;
-import java.security.cert.X509Certificate;
-import java.time.Duration;
import java.util.List;
import java.util.function.Supplier;
import java.util.logging.Logger;
@@ -33,16 +27,10 @@ public class ZtsClientImpl implements ZtsClient {
private final ZTSClient ztsClient;
private final AthenzService service;
- private final PrivateKey privateKey;
- private final String certificateDnsDomain;
- private final Duration certExpiry;
- public ZtsClientImpl(ZTSClient ztsClient, PrivateKey privateKey, AthenzConfig config) {
+ public ZtsClientImpl(ZTSClient ztsClient, AthenzConfig config) {
this.ztsClient = ztsClient;
this.service = new AthenzService(config.domain(), config.service().name());
- this.privateKey = privateKey;
- this.certificateDnsDomain = config.certDnsDomain();
- this.certExpiry = Duration.ofMinutes(config.service().credentialsExpiryMinutes());
}
@Override
@@ -59,28 +47,6 @@ public class ZtsClientImpl implements ZtsClient {
});
}
- @Override
- public AthenzRoleCertificate getRoleCertificate(AthenzDomain roleDomain, String roleName) {
- return getOrThrow(() -> {
- log.log(LogLevel.DEBUG,
- String.format("postRoleCertificateRequest(service=%s, roleDomain=%s, roleName=%s)",
- service.getFullName(), roleDomain.getName(), roleName));
- RoleCertificateRequest req =
- ZTSClient.generateRoleCertificateRequest(
- service.getDomain().getName(),
- service.getName(),
- roleDomain.getName(),
- roleName,
- privateKey,
- certificateDnsDomain,
- (int)certExpiry.getSeconds());
- X509Certificate roleCertificate = Crypto.loadX509Certificate(
- ztsClient.postRoleCertificateRequest(roleDomain.getName(), roleName, req)
- .getToken());
- return new AthenzRoleCertificate(roleCertificate, privateKey);
- });
- }
-
private static <T> T getOrThrow(Supplier<T> wrappedCode) {
try {
return wrappedCode.get();
diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/athenz/mock/ZtsClientMock.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/athenz/mock/ZtsClientMock.java
index b6026308272..4aa1c2b93a5 100644
--- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/athenz/mock/ZtsClientMock.java
+++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/athenz/mock/ZtsClientMock.java
@@ -1,20 +1,10 @@
// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.vespa.hosted.controller.athenz.mock;
-import com.yahoo.athenz.auth.util.Crypto;
import com.yahoo.vespa.athenz.api.AthenzDomain;
import com.yahoo.vespa.athenz.api.AthenzIdentity;
-import com.yahoo.vespa.athenz.api.AthenzRoleCertificate;
import com.yahoo.vespa.hosted.controller.api.integration.athenz.ZtsClient;
-import org.bouncycastle.asn1.x500.X500Name;
-import org.bouncycastle.operator.OperatorCreationException;
-import org.bouncycastle.pkcs.PKCS10CertificationRequest;
-import java.io.IOException;
-import java.security.KeyPair;
-import java.security.KeyPairGenerator;
-import java.security.NoSuchAlgorithmException;
-import java.security.cert.X509Certificate;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
@@ -42,31 +32,4 @@ public class ZtsClientMock implements ZtsClient {
.collect(toList());
}
- @Override
- public AthenzRoleCertificate getRoleCertificate(AthenzDomain roleDomain, String roleName) {
- log.log(Level.INFO,
- String.format("getRoleCertificate(roleDomain=%s, roleName=%s)", roleDomain.getName(), roleDomain));
- try {
- KeyPair keyPair = createKeyPair();
- String subject = String.format("CN=%s:role.%s", roleDomain.getName(), roleName);
- return new AthenzRoleCertificate(createCertificate(keyPair, subject), keyPair.getPrivate());
- } catch (NoSuchAlgorithmException | OperatorCreationException | IOException e) {
- throw new RuntimeException(e);
- }
- }
-
- private static X509Certificate createCertificate(KeyPair keyPair, String subject) throws
- OperatorCreationException, IOException {
- PKCS10CertificationRequest csr =
- Crypto.getPKCS10CertRequest(
- Crypto.generateX509CSR(keyPair.getPrivate(), subject, null));
- return Crypto.generateX509Certificate(csr, keyPair.getPrivate(), new X500Name(subject), 3600, false);
- }
-
- private static KeyPair createKeyPair() throws NoSuchAlgorithmException {
- KeyPairGenerator keyGen = KeyPairGenerator.getInstance("RSA");
- keyGen.initialize(512);
- return keyGen.genKeyPair();
- }
-
}