aboutsummaryrefslogtreecommitdiffstats
path: root/container-core/src/main/java/com/yahoo/restapi/RestApi.java
diff options
context:
space:
mode:
authorBjørn Christian Seime <bjorncs@verizonmedia.com>2021-07-12 15:24:49 +0200
committerBjørn Christian Seime <bjorncs@verizonmedia.com>2021-07-14 15:15:43 +0200
commit8d2e351b21bc418b90d8ea56be3265e54da85137 (patch)
tree52a4892d105ac3e609e4b1eb74d9aa20c3aa65d1 /container-core/src/main/java/com/yahoo/restapi/RestApi.java
parentd5a7b61b15c4a480a8ae049d907b149c872ac5cd (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.java13
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);