aboutsummaryrefslogtreecommitdiffstats
path: root/container-core/src/main/java/com/yahoo/container
diff options
context:
space:
mode:
authorMorten Tokle <mortent@verizonmedia.com>2021-04-16 08:23:16 +0200
committerMorten Tokle <mortent@verizonmedia.com>2021-04-16 11:02:59 +0200
commit852ae37871cc7db3447dbfc8ddea5157b6a81d4d (patch)
treef210c9020afc88659c1bffda4afddae391951229 /container-core/src/main/java/com/yahoo/container
parent96c2e442cbb798f0c85990d3f0c760c60ee9a5b3 (diff)
Changes after review
Diffstat (limited to 'container-core/src/main/java/com/yahoo/container')
-rw-r--r--container-core/src/main/java/com/yahoo/container/jdisc/AclMapping.java38
-rw-r--r--container-core/src/main/java/com/yahoo/container/jdisc/DefaultAclMapping.java6
-rw-r--r--container-core/src/main/java/com/yahoo/container/jdisc/HttpRequestHandler.java (renamed from container-core/src/main/java/com/yahoo/container/jdisc/RequestHandlerWithSpec.java)5
-rw-r--r--container-core/src/main/java/com/yahoo/container/jdisc/ThreadedHttpRequestHandler.java2
-rw-r--r--container-core/src/main/java/com/yahoo/container/jdisc/ThreadedRequestHandler.java2
5 files changed, 43 insertions, 10 deletions
diff --git a/container-core/src/main/java/com/yahoo/container/jdisc/AclMapping.java b/container-core/src/main/java/com/yahoo/container/jdisc/AclMapping.java
index 8c7701a7534..e7c3d71ba44 100644
--- a/container-core/src/main/java/com/yahoo/container/jdisc/AclMapping.java
+++ b/container-core/src/main/java/com/yahoo/container/jdisc/AclMapping.java
@@ -2,13 +2,49 @@
package com.yahoo.container.jdisc;
+import java.util.Objects;
+
/**
* Mapping from request to action
*
* @author mortent
*/
public interface AclMapping {
- enum Action {create, read, update, delete};
+ class Action {
+ public static final Action READ = new Action("read");
+ public static final Action WRITE = new Action("write");
+ private final String name;
+ public static Action custom(String name) {
+ return new Action(name);
+ }
+ private Action(String name) {
+ if(Objects.requireNonNull(name).isBlank()) {
+ throw new IllegalArgumentException("Name cannot be blank");
+ }
+ this.name = Objects.requireNonNull(name);
+ }
+ public String name() { return name; }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) return true;
+ if (o == null || getClass() != o.getClass()) return false;
+ Action action = (Action) o;
+ return Objects.equals(name, action.name);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(name);
+ }
+
+ @Override
+ public String toString() {
+ return "Action{" +
+ "name='" + name + '\'' +
+ '}';
+ }
+ }
Action get(RequestView requestView);
}
diff --git a/container-core/src/main/java/com/yahoo/container/jdisc/DefaultAclMapping.java b/container-core/src/main/java/com/yahoo/container/jdisc/DefaultAclMapping.java
index 0a996cb5967..93639029128 100644
--- a/container-core/src/main/java/com/yahoo/container/jdisc/DefaultAclMapping.java
+++ b/container-core/src/main/java/com/yahoo/container/jdisc/DefaultAclMapping.java
@@ -14,16 +14,14 @@ public class DefaultAclMapping implements AclMapping {
case GET:
case HEAD:
case OPTIONS:
- return Action.read;
+ return Action.READ;
case POST:
- return Action.create;
case DELETE:
- return Action.delete;
case PUT:
case PATCH:
case CONNECT:
case TRACE:
- return Action.update;
+ return Action.WRITE;
default:
throw new IllegalArgumentException("Illegal request method: " + requestMeta.method());
}
diff --git a/container-core/src/main/java/com/yahoo/container/jdisc/RequestHandlerWithSpec.java b/container-core/src/main/java/com/yahoo/container/jdisc/HttpRequestHandler.java
index 89107195671..f322c9c5b6f 100644
--- a/container-core/src/main/java/com/yahoo/container/jdisc/RequestHandlerWithSpec.java
+++ b/container-core/src/main/java/com/yahoo/container/jdisc/HttpRequestHandler.java
@@ -5,14 +5,13 @@ package com.yahoo.container.jdisc;
import com.yahoo.jdisc.handler.RequestHandler;
/**
- * Extends a request handler with a request handler specification.
+ * Extends a request handler with a http specific
*
* @author mortent
*/
-public interface RequestHandlerWithSpec extends RequestHandler {
+public interface HttpRequestHandler extends RequestHandler {
/**
- *
* @return handler specification
*/
default RequestHandlerSpec requestHandlerSpec() {
diff --git a/container-core/src/main/java/com/yahoo/container/jdisc/ThreadedHttpRequestHandler.java b/container-core/src/main/java/com/yahoo/container/jdisc/ThreadedHttpRequestHandler.java
index 5b8fe907293..be708f2fc94 100644
--- a/container-core/src/main/java/com/yahoo/container/jdisc/ThreadedHttpRequestHandler.java
+++ b/container-core/src/main/java/com/yahoo/container/jdisc/ThreadedHttpRequestHandler.java
@@ -32,7 +32,7 @@ import java.util.logging.Logger;
* @author Steinar Knutsen
* @author bratseth
*/
-public abstract class ThreadedHttpRequestHandler extends ThreadedRequestHandler {
+public abstract class ThreadedHttpRequestHandler extends ThreadedRequestHandler implements HttpRequestHandler {
public static final String CONTENT_TYPE = "Content-Type";
private static final String RENDERING_ERRORS = "rendering_errors";
diff --git a/container-core/src/main/java/com/yahoo/container/jdisc/ThreadedRequestHandler.java b/container-core/src/main/java/com/yahoo/container/jdisc/ThreadedRequestHandler.java
index 0b05f58f75e..446ee90c205 100644
--- a/container-core/src/main/java/com/yahoo/container/jdisc/ThreadedRequestHandler.java
+++ b/container-core/src/main/java/com/yahoo/container/jdisc/ThreadedRequestHandler.java
@@ -35,7 +35,7 @@ import java.util.logging.Logger;
*
* @author Simon Thoresen Hult
*/
-public abstract class ThreadedRequestHandler extends AbstractRequestHandler implements RequestHandlerWithSpec {
+public abstract class ThreadedRequestHandler extends AbstractRequestHandler {
private static final Logger log = Logger.getLogger(ThreadedRequestHandler.class.getName());
private static final Duration TIMEOUT = Duration.ofSeconds(Integer.parseInt(System.getProperty("ThreadedRequestHandler.timeout", "300")));