diff options
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(); |