diff options
author | Bjørn Christian Seime <bjorncs@oath.com> | 2018-08-14 14:31:54 +0200 |
---|---|---|
committer | Bjørn Christian Seime <bjorncs@oath.com> | 2018-08-14 14:31:54 +0200 |
commit | 153374e64c25718ffe14e1f62b397b540a93c6a6 (patch) | |
tree | 1261126600a7a149cbd2f2e6d3ebd2bd34c9352c /vespa-athenz/src | |
parent | c1608122c31173b3308e1b9d9f9904adb58fd040 (diff) |
Update DefaultZtsClient to use new http client interface
Diffstat (limited to 'vespa-athenz/src')
-rw-r--r-- | vespa-athenz/src/main/java/com/yahoo/vespa/athenz/client/zts/DefaultZtsClient.java | 29 |
1 files changed, 21 insertions, 8 deletions
diff --git a/vespa-athenz/src/main/java/com/yahoo/vespa/athenz/client/zts/DefaultZtsClient.java b/vespa-athenz/src/main/java/com/yahoo/vespa/athenz/client/zts/DefaultZtsClient.java index 951794798bf..8d18d2f26f3 100644 --- a/vespa-athenz/src/main/java/com/yahoo/vespa/athenz/client/zts/DefaultZtsClient.java +++ b/vespa-athenz/src/main/java/com/yahoo/vespa/athenz/client/zts/DefaultZtsClient.java @@ -26,6 +26,7 @@ import com.yahoo.vespa.athenz.identity.SiaBackedApacheHttpClient; import com.yahoo.vespa.athenz.tls.Pkcs10Csr; import com.yahoo.vespa.athenz.tls.Pkcs10CsrBuilder; import org.apache.http.HttpResponse; +import org.apache.http.client.ResponseHandler; import org.apache.http.client.config.RequestConfig; import org.apache.http.client.methods.HttpUriRequest; import org.apache.http.client.methods.RequestBuilder; @@ -63,7 +64,7 @@ public class DefaultZtsClient implements ZtsClient { private static final ObjectMapper objectMapper = new ObjectMapper().registerModule(new JavaTimeModule()); private final URI ztsUrl; - private final SiaBackedApacheHttpClient client; + private final CloseableHttpClient client; private final AthenzIdentity identity; public DefaultZtsClient(URI ztsUrl, AthenzIdentity identity, SSLContext sslContext) { @@ -93,7 +94,7 @@ public class DefaultZtsClient implements ZtsClient { .setUri(ztsUrl.resolve("instance/")) .setEntity(toJsonStringEntity(payload)) .build(); - return client.execute(request, DefaultZtsClient::getInstanceIdentity); + return execute(request, DefaultZtsClient::getInstanceIdentity); } @Override @@ -113,7 +114,7 @@ public class DefaultZtsClient implements ZtsClient { .setUri(uri) .setEntity(toJsonStringEntity(payload)) .build(); - return client.execute(request, DefaultZtsClient::getInstanceIdentity); + return execute(request, DefaultZtsClient::getInstanceIdentity); } @Override @@ -123,7 +124,7 @@ public class DefaultZtsClient implements ZtsClient { .setUri(uri) .setEntity(toJsonStringEntity(new IdentityRefreshRequestEntity(csr, keyId))) .build(); - return client.execute(request, response -> { + return execute(request, response -> { IdentityResponseEntity entity = readEntity(response, IdentityResponseEntity.class); return new Identity(entity.certificate(), entity.caCertificateBundle()); }); @@ -153,7 +154,7 @@ public class DefaultZtsClient implements ZtsClient { requestBuilder.addParameter("role", roleName); } HttpUriRequest request = requestBuilder.build(); - return client.execute(request, response -> { + return execute(request, response -> { RoleTokenResponseEntity roleTokenResponseEntity = readEntity(response, RoleTokenResponseEntity.class); return roleTokenResponseEntity.token; }); @@ -174,7 +175,7 @@ public class DefaultZtsClient implements ZtsClient { HttpUriRequest request = RequestBuilder.post(uri) .setEntity(toJsonStringEntity(requestEntity)) .build(); - return client.execute(request, response -> { + return execute(request, response -> { RoleCertificateResponseEntity responseEntity = readEntity(response, RoleCertificateResponseEntity.class); return responseEntity.certificate; }); @@ -195,12 +196,20 @@ public class DefaultZtsClient implements ZtsClient { .addParameter("roleName", roleName) .addParameter("serviceName", providerIdentity.getName()) .build(); - return client.execute(request, response -> { + return execute(request, response -> { TenantDomainsResponseEntity entity = readEntity(response, TenantDomainsResponseEntity.class); return entity.tenantDomainNames.stream().map(AthenzDomain::new).collect(toList()); }); } + private <T> T execute(HttpUriRequest request, ResponseHandler<T> responseHandler) { + try { + return client.execute(request, responseHandler); + } catch (IOException e) { + throw new UncheckedIOException(e); + } + } + private static InstanceIdentity getInstanceIdentity(HttpResponse response) throws IOException { InstanceIdentityCredentials entity = readEntity(response, InstanceIdentityCredentials.class); return entity.getServiceToken() != null @@ -247,7 +256,11 @@ public class DefaultZtsClient implements ZtsClient { @Override public void close() { - this.client.close(); + try { + this.client.close(); + } catch (IOException e) { + throw new UncheckedIOException(e); + } } } |