aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/filter/AthenzRoleFilter.java15
-rw-r--r--jdisc-security-filters/src/main/java/com/yahoo/jdisc/http/filter/security/base/JsonSecurityRequestFilterBase.java3
2 files changed, 17 insertions, 1 deletions
diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/filter/AthenzRoleFilter.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/filter/AthenzRoleFilter.java
index e1acb9008ce..30f0d545ffe 100644
--- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/filter/AthenzRoleFilter.java
+++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/filter/AthenzRoleFilter.java
@@ -130,6 +130,21 @@ public class AthenzRoleFilter extends JsonSecurityRequestFilterBase {
: Set.copyOf(roleMemberships);
}
+ @Override
+ public void deconstruct() {
+ try {
+ executor.shutdown();
+ if ( ! executor.awaitTermination(30, TimeUnit.SECONDS)) {
+ executor.shutdownNow();
+ if ( ! executor.awaitTermination(10, TimeUnit.SECONDS))
+ throw new IllegalStateException("Failed to shut down executor 40 seconds");
+ }
+ }
+ catch (InterruptedException e) {
+ throw new IllegalStateException("Interrupted while shutting down executor", e);
+ }
+ }
+
private boolean hasDeployerAccess(AthenzIdentity identity, AthenzDomain tenantDomain, ApplicationName application) {
try {
return athenz.hasApplicationAccess(identity,
diff --git a/jdisc-security-filters/src/main/java/com/yahoo/jdisc/http/filter/security/base/JsonSecurityRequestFilterBase.java b/jdisc-security-filters/src/main/java/com/yahoo/jdisc/http/filter/security/base/JsonSecurityRequestFilterBase.java
index e654182d665..33d344c4f2a 100644
--- a/jdisc-security-filters/src/main/java/com/yahoo/jdisc/http/filter/security/base/JsonSecurityRequestFilterBase.java
+++ b/jdisc-security-filters/src/main/java/com/yahoo/jdisc/http/filter/security/base/JsonSecurityRequestFilterBase.java
@@ -4,6 +4,7 @@ package com.yahoo.jdisc.http.filter.security.base;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.node.ObjectNode;
+import com.yahoo.component.AbstractComponent;
import com.yahoo.jdisc.Response;
import com.yahoo.jdisc.handler.FastContentWriter;
import com.yahoo.jdisc.handler.ResponseDispatch;
@@ -21,7 +22,7 @@ import java.util.logging.Logger;
*
* @author bjorncs
*/
-public abstract class JsonSecurityRequestFilterBase implements SecurityRequestFilter {
+public abstract class JsonSecurityRequestFilterBase extends AbstractComponent implements SecurityRequestFilter {
private static final Logger log = Logger.getLogger(JsonSecurityRequestFilterBase.class.getName());
private static final ObjectMapper mapper = new ObjectMapper();