aboutsummaryrefslogtreecommitdiffstats
path: root/container-disc/src/main/java/com/yahoo/container/jdisc/FilterBindingsProvider.java
diff options
context:
space:
mode:
authorBjørn Christian Seime <bjorncs@verizonmedia.com>2020-11-13 10:07:52 +0100
committerBjørn Christian Seime <bjorncs@verizonmedia.com>2020-11-13 10:07:52 +0100
commit588545859beeae0b94d3311db80751cbe508f66c (patch)
treedddb3e63f0cd95f6b02bf218b64d0df270bee54b /container-disc/src/main/java/com/yahoo/container/jdisc/FilterBindingsProvider.java
parent152d8f57d0d62506c83894907ca3c2e1fc56dfd6 (diff)
Prepare FilterBindings to allow default filter chains and metrics
Track and expose filter ids from FilterBindings. Add builder to simplify construction for FilterBindings in provider and unit tests. Move FilterBindings to com.yahoo.jdisc.http.server.jetty package. Encapsulate binding matching in FilterBindings.
Diffstat (limited to 'container-disc/src/main/java/com/yahoo/container/jdisc/FilterBindingsProvider.java')
-rw-r--r--container-disc/src/main/java/com/yahoo/container/jdisc/FilterBindingsProvider.java26
1 files changed, 9 insertions, 17 deletions
diff --git a/container-disc/src/main/java/com/yahoo/container/jdisc/FilterBindingsProvider.java b/container-disc/src/main/java/com/yahoo/container/jdisc/FilterBindingsProvider.java
index 972f9dd8e18..195aee93246 100644
--- a/container-disc/src/main/java/com/yahoo/container/jdisc/FilterBindingsProvider.java
+++ b/container-disc/src/main/java/com/yahoo/container/jdisc/FilterBindingsProvider.java
@@ -5,12 +5,9 @@ import com.yahoo.component.ComponentId;
import com.yahoo.component.provider.ComponentRegistry;
import com.yahoo.container.di.componentgraph.Provider;
import com.yahoo.container.http.filter.FilterChainRepository;
-import com.yahoo.jdisc.application.BindingRepository;
import com.yahoo.jdisc.http.ServerConfig;
-import com.yahoo.jdisc.http.filter.RequestFilter;
-import com.yahoo.jdisc.http.filter.ResponseFilter;
import com.yahoo.jdisc.http.filter.SecurityRequestFilter;
-import com.yahoo.jdisc.http.server.FilterBindings;
+import com.yahoo.jdisc.http.server.jetty.FilterBindings;
import java.util.ArrayList;
import java.util.List;
@@ -18,28 +15,26 @@ import java.util.List;
/**
* Provides filter bindings based on vespa config.
*
- * @author bakksjo
+ * @author Oyvind Bakksjo
+ * @author bjorncs
*/
public class FilterBindingsProvider implements Provider<FilterBindings> {
- final BindingRepository<RequestFilter> requestFilters = new BindingRepository<>();
- final BindingRepository<ResponseFilter> responseFilters = new BindingRepository<>();
+ private final FilterBindings filterBindings;
public FilterBindingsProvider(ComponentId componentId,
ServerConfig config,
FilterChainRepository filterChainRepository,
ComponentRegistry<SecurityRequestFilter> legacyRequestFilters) {
- ComponentId serverId = componentId.getNamespace();
try {
- FilterUtil.setupFilters(
+ this.filterBindings = FilterUtil.setupFilters(
componentId,
legacyRequestFilters,
toFilterSpecs(config.filter()),
- filterChainRepository,
- requestFilters,
- responseFilters);
+ filterChainRepository);
} catch (Exception e) {
- throw new RuntimeException("Invalid config for http server " + serverId, e);
+ throw new RuntimeException(
+ "Invalid config for http server '" + componentId.getNamespace() + "': " + e.getMessage(), e);
}
}
@@ -51,10 +46,7 @@ public class FilterBindingsProvider implements Provider<FilterBindings> {
return outFilters;
}
- @Override
- public FilterBindings get() {
- return new FilterBindings(requestFilters, responseFilters);
- }
+ @Override public FilterBindings get() { return filterBindings; }
@Override
public void deconstruct() {}