diff options
author | Bjørn Christian Seime <bjorncs@verizonmedia.com> | 2021-07-12 15:24:49 +0200 |
---|---|---|
committer | Bjørn Christian Seime <bjorncs@verizonmedia.com> | 2021-07-14 15:15:43 +0200 |
commit | 8d2e351b21bc418b90d8ea56be3265e54da85137 (patch) | |
tree | 52a4892d105ac3e609e4b1eb74d9aa20c3aa65d1 /container-core/src/main/java/com/yahoo/restapi/RestApi.java | |
parent | d5a7b61b15c4a480a8ae049d907b149c872ac5cd (diff) |
Support custom ACL action mapping for restapi methods through RequestHandlerSpec
Diffstat (limited to 'container-core/src/main/java/com/yahoo/restapi/RestApi.java')
-rw-r--r-- | container-core/src/main/java/com/yahoo/restapi/RestApi.java | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/container-core/src/main/java/com/yahoo/restapi/RestApi.java b/container-core/src/main/java/com/yahoo/restapi/RestApi.java index 6ca7135c628..f438dd66cf1 100644 --- a/container-core/src/main/java/com/yahoo/restapi/RestApi.java +++ b/container-core/src/main/java/com/yahoo/restapi/RestApi.java @@ -2,8 +2,10 @@ package com.yahoo.restapi; import com.fasterxml.jackson.databind.ObjectMapper; +import com.yahoo.container.jdisc.AclMapping; import com.yahoo.container.jdisc.HttpRequest; import com.yahoo.container.jdisc.HttpResponse; +import com.yahoo.container.jdisc.RequestHandlerSpec; import java.io.InputStream; import java.util.List; @@ -25,6 +27,9 @@ public interface RestApi { HttpResponse handleRequest(HttpRequest request); ObjectMapper jacksonJsonMapper(); + /** @see com.yahoo.container.jdisc.HttpRequestHandler#requestHandlerSpec() */ + RequestHandlerSpec requestHandlerSpec(); + interface Builder { Builder setObjectMapper(ObjectMapper mapper); Builder setDefaultRoute(RouteBuilder route); @@ -37,6 +42,7 @@ public interface RestApi { <REQUEST_ENTITY> Builder registerJacksonRequestEntity(Class<REQUEST_ENTITY> type); Builder disableDefaultExceptionMappers(); Builder disableDefaultResponseMappers(); + Builder disableDefaultAclMapping(); RestApi build(); } @@ -101,7 +107,11 @@ public interface RestApi { @FunctionalInterface interface Filter { HttpResponse filterRequest(FilterContext context); } - interface HandlerConfigBuilder {} + interface HandlerConfigBuilder { + HandlerConfigBuilder withReadAclAction(); + HandlerConfigBuilder withWriteAclAction(); + HandlerConfigBuilder withCustomAclAction(AclMapping.Action action); + } interface RequestContext { HttpRequest request(); @@ -113,6 +123,7 @@ public interface RestApi { RequestContent requestContentOrThrow(); ObjectMapper jacksonJsonMapper(); UriBuilder uriBuilder(); + AclMapping.Action aclAction(); interface Parameters { Optional<String> getString(String name); |