diff options
author | jonmv <venstad@gmail.com> | 2022-05-04 16:20:14 +0200 |
---|---|---|
committer | jonmv <venstad@gmail.com> | 2022-05-04 16:20:14 +0200 |
commit | 4204e6ea8a1f133dce2ac9d7265c45e5d4c84395 (patch) | |
tree | e4a0c425340930be65abe5ee8f886b41dd6deb3b | |
parent | 565de130d7a7a176d6658cce756288831ec3f387 (diff) |
Expose EndpointAuthenticator
-rw-r--r-- | tenant-cd-api/abi-spec.json | 16 | ||||
-rw-r--r-- | tenant-cd-api/src/main/java/ai/vespa/hosted/cd/Endpoint.java | 3 | ||||
-rw-r--r-- | tenant-cd-api/src/main/java/ai/vespa/hosted/cd/EndpointAuthenticator.java (renamed from tenant-cd-commons/src/main/java/ai/vespa/hosted/cd/commons/EndpointAuthenticator.java) | 2 | ||||
-rw-r--r-- | tenant-cd-commons/src/main/java/ai/vespa/hosted/cd/commons/DefaultEndpointAuthenticator.java | 1 | ||||
-rw-r--r-- | tenant-cd-commons/src/main/java/ai/vespa/hosted/cd/commons/FeedClientBuilder.java | 1 | ||||
-rw-r--r-- | tenant-cd-commons/src/main/java/ai/vespa/hosted/cd/commons/HttpDeployment.java | 1 | ||||
-rw-r--r-- | tenant-cd-commons/src/main/java/ai/vespa/hosted/cd/commons/HttpEndpoint.java | 6 |
7 files changed, 29 insertions, 1 deletions
diff --git a/tenant-cd-api/abi-spec.json b/tenant-cd-api/abi-spec.json index 18094f2973f..48222a63e28 100644 --- a/tenant-cd-api/abi-spec.json +++ b/tenant-cd-api/abi-spec.json @@ -22,6 +22,7 @@ ], "methods": [ "public abstract java.net.URI uri()", + "public abstract ai.vespa.hosted.cd.EndpointAuthenticator authenticator()", "public abstract java.net.http.HttpResponse send(java.net.http.HttpRequest$Builder, java.net.http.HttpResponse$BodyHandler)", "public java.net.http.HttpResponse send(java.net.http.HttpRequest$Builder)", "public abstract java.net.http.HttpRequest$Builder request(java.lang.String, java.util.Map)", @@ -29,6 +30,21 @@ ], "fields": [] }, + "ai.vespa.hosted.cd.EndpointAuthenticator": { + "superClass": "java.lang.Object", + "interfaces": [], + "attributes": [ + "public", + "interface", + "abstract" + ], + "methods": [ + "public javax.net.ssl.SSLContext sslContext()", + "public java.net.http.HttpRequest$Builder authenticated(java.net.http.HttpRequest$Builder)", + "public java.util.Map authorizationHeaders()" + ], + "fields": [] + }, "ai.vespa.hosted.cd.InconclusiveTestException": { "superClass": "java.lang.RuntimeException", "interfaces": [], diff --git a/tenant-cd-api/src/main/java/ai/vespa/hosted/cd/Endpoint.java b/tenant-cd-api/src/main/java/ai/vespa/hosted/cd/Endpoint.java index 3fd345abaff..319d835c73a 100644 --- a/tenant-cd-api/src/main/java/ai/vespa/hosted/cd/Endpoint.java +++ b/tenant-cd-api/src/main/java/ai/vespa/hosted/cd/Endpoint.java @@ -18,6 +18,9 @@ public interface Endpoint { /** Returns the URI of the endpoint, with scheme, host and port. */ URI uri(); + /** Returns the authenticator for HTTP requests against this particular endpoint. */ + EndpointAuthenticator authenticator(); + /** Sends the given request with required authentication. */ <T> HttpResponse<T> send(HttpRequest.Builder request, HttpResponse.BodyHandler<T> handler); diff --git a/tenant-cd-commons/src/main/java/ai/vespa/hosted/cd/commons/EndpointAuthenticator.java b/tenant-cd-api/src/main/java/ai/vespa/hosted/cd/EndpointAuthenticator.java index 590f49f0124..8985375fce2 100644 --- a/tenant-cd-commons/src/main/java/ai/vespa/hosted/cd/commons/EndpointAuthenticator.java +++ b/tenant-cd-api/src/main/java/ai/vespa/hosted/cd/EndpointAuthenticator.java @@ -1,5 +1,5 @@ // Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. -package ai.vespa.hosted.cd.commons; +package ai.vespa.hosted.cd; import javax.net.ssl.SSLContext; import java.net.http.HttpRequest; diff --git a/tenant-cd-commons/src/main/java/ai/vespa/hosted/cd/commons/DefaultEndpointAuthenticator.java b/tenant-cd-commons/src/main/java/ai/vespa/hosted/cd/commons/DefaultEndpointAuthenticator.java index b52abddba07..b8030afd901 100644 --- a/tenant-cd-commons/src/main/java/ai/vespa/hosted/cd/commons/DefaultEndpointAuthenticator.java +++ b/tenant-cd-commons/src/main/java/ai/vespa/hosted/cd/commons/DefaultEndpointAuthenticator.java @@ -2,6 +2,7 @@ package ai.vespa.hosted.cd.commons; import ai.vespa.hosted.api.Properties; +import ai.vespa.hosted.cd.EndpointAuthenticator; import com.yahoo.config.provision.SystemName; import com.yahoo.security.KeyUtils; import com.yahoo.security.SslContextBuilder; diff --git a/tenant-cd-commons/src/main/java/ai/vespa/hosted/cd/commons/FeedClientBuilder.java b/tenant-cd-commons/src/main/java/ai/vespa/hosted/cd/commons/FeedClientBuilder.java index 892c8b63645..7e7355ae6d4 100644 --- a/tenant-cd-commons/src/main/java/ai/vespa/hosted/cd/commons/FeedClientBuilder.java +++ b/tenant-cd-commons/src/main/java/ai/vespa/hosted/cd/commons/FeedClientBuilder.java @@ -3,6 +3,7 @@ package ai.vespa.hosted.cd.commons; import ai.vespa.feed.client.impl.FeedClientBuilderImpl; +import ai.vespa.hosted.cd.EndpointAuthenticator; import java.util.Objects; import java.util.concurrent.atomic.AtomicReference; diff --git a/tenant-cd-commons/src/main/java/ai/vespa/hosted/cd/commons/HttpDeployment.java b/tenant-cd-commons/src/main/java/ai/vespa/hosted/cd/commons/HttpDeployment.java index 347d772b148..1abdc4d4297 100644 --- a/tenant-cd-commons/src/main/java/ai/vespa/hosted/cd/commons/HttpDeployment.java +++ b/tenant-cd-commons/src/main/java/ai/vespa/hosted/cd/commons/HttpDeployment.java @@ -3,6 +3,7 @@ package ai.vespa.hosted.cd.commons; import ai.vespa.hosted.cd.Deployment; import ai.vespa.hosted.cd.Endpoint; +import ai.vespa.hosted.cd.EndpointAuthenticator; import java.net.URI; import java.util.Map; diff --git a/tenant-cd-commons/src/main/java/ai/vespa/hosted/cd/commons/HttpEndpoint.java b/tenant-cd-commons/src/main/java/ai/vespa/hosted/cd/commons/HttpEndpoint.java index fdca5c6e69b..0e5f42fa178 100644 --- a/tenant-cd-commons/src/main/java/ai/vespa/hosted/cd/commons/HttpEndpoint.java +++ b/tenant-cd-commons/src/main/java/ai/vespa/hosted/cd/commons/HttpEndpoint.java @@ -2,6 +2,7 @@ package ai.vespa.hosted.cd.commons; import ai.vespa.hosted.cd.Endpoint; +import ai.vespa.hosted.cd.EndpointAuthenticator; import javax.net.ssl.SSLParameters; import java.io.IOException; @@ -47,6 +48,11 @@ public class HttpEndpoint implements Endpoint { } @Override + public EndpointAuthenticator authenticator() { + return authenticator; + } + + @Override public <T> HttpResponse<T> send(HttpRequest.Builder request, HttpResponse.BodyHandler<T> handler) { try { return client.send(authenticator.authenticated(request).build(), handler); |