summaryrefslogtreecommitdiffstats
path: root/service-monitor/src/main/java/com/yahoo/vespa/service/health/HttpsHealthEndpoint.java
diff options
context:
space:
mode:
Diffstat (limited to 'service-monitor/src/main/java/com/yahoo/vespa/service/health/HttpsHealthEndpoint.java')
-rw-r--r--service-monitor/src/main/java/com/yahoo/vespa/service/health/HttpsHealthEndpoint.java42
1 files changed, 42 insertions, 0 deletions
diff --git a/service-monitor/src/main/java/com/yahoo/vespa/service/health/HttpsHealthEndpoint.java b/service-monitor/src/main/java/com/yahoo/vespa/service/health/HttpsHealthEndpoint.java
new file mode 100644
index 00000000000..42e408256c5
--- /dev/null
+++ b/service-monitor/src/main/java/com/yahoo/vespa/service/health/HttpsHealthEndpoint.java
@@ -0,0 +1,42 @@
+// Copyright 2018 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
+package com.yahoo.vespa.service.health;
+
+import com.yahoo.vespa.athenz.identity.ServiceIdentityProvider;
+import com.yahoo.vespa.athenz.identity.ServiceIdentitySslSocketFactory;
+import org.apache.http.conn.socket.ConnectionSocketFactory;
+import org.apache.http.conn.ssl.SSLConnectionSocketFactory;
+
+import javax.net.ssl.HostnameVerifier;
+import java.net.URL;
+
+/**
+ * @author hakon
+ */
+public class HttpsHealthEndpoint implements HealthEndpoint {
+ private final URL url;
+ private final HostnameVerifier hostnameVerifier;
+ private final ServiceIdentityProvider serviceIdentityProvider;
+
+ HttpsHealthEndpoint(URL url,
+ ServiceIdentityProvider serviceIdentityProvider,
+ HostnameVerifier hostnameVerifier) {
+ this.url = url;
+ this.serviceIdentityProvider = serviceIdentityProvider;
+ this.hostnameVerifier = hostnameVerifier;
+ }
+
+ @Override
+ public URL getStateV1HealthUrl() {
+ return url;
+ }
+
+ @Override
+ public ConnectionSocketFactory getConnectionSocketFactory() {
+ return new SSLConnectionSocketFactory(new ServiceIdentitySslSocketFactory(serviceIdentityProvider), hostnameVerifier);
+ }
+
+ @Override
+ public String description() {
+ return url.toString();
+ }
+}