aboutsummaryrefslogtreecommitdiffstats
path: root/config-model/src/main/java/com/yahoo/vespa/model/container/http/xml/HttpBuilder.java
diff options
context:
space:
mode:
Diffstat (limited to 'config-model/src/main/java/com/yahoo/vespa/model/container/http/xml/HttpBuilder.java')
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/container/http/xml/HttpBuilder.java16
1 files changed, 14 insertions, 2 deletions
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/container/http/xml/HttpBuilder.java b/config-model/src/main/java/com/yahoo/vespa/model/container/http/xml/HttpBuilder.java
index c86d8b206d5..5b360b478fa 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/container/http/xml/HttpBuilder.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/container/http/xml/HttpBuilder.java
@@ -31,6 +31,10 @@ import java.util.logging.Level;
*/
public class HttpBuilder extends VespaDomBuilder.DomConfigProducerBuilder<Http> {
+ static final String REQUEST_CHAIN_TAG_NAME = "request-chain";
+ static final String RESPONSE_CHAIN_TAG_NAME = "response-chain";
+ static final List<String> VALID_FILTER_CHAIN_TAG_NAMES = List.of(REQUEST_CHAIN_TAG_NAME, RESPONSE_CHAIN_TAG_NAME);
+
@Override
protected Http doBuild(DeployState deployState, AbstractConfigProducer ancestor, Element spec) {
FilterChains filterChains;
@@ -116,18 +120,26 @@ public class HttpBuilder extends VespaDomBuilder.DomConfigProducerBuilder<Http>
for (Element child: XML.getChildren(filteringSpec)) {
String tagName = child.getTagName();
- if ((tagName.equals("request-chain") || tagName.equals("response-chain"))) {
+ if (VALID_FILTER_CHAIN_TAG_NAMES.contains(tagName)) {
ComponentSpecification chainId = XmlHelper.getIdRef(child);
for (Element bindingSpec: XML.getChildren(child, "binding")) {
String binding = XML.getValue(bindingSpec);
- result.add(FilterBinding.create(chainId, UserBindingPattern.fromPattern(binding)));
+ result.add(FilterBinding.create(toFilterBindingType(tagName), chainId, UserBindingPattern.fromPattern(binding)));
}
}
}
return result;
}
+ private static FilterBinding.Type toFilterBindingType(String chainTag) {
+ switch (chainTag) {
+ case REQUEST_CHAIN_TAG_NAME: return FilterBinding.Type.REQUEST;
+ case RESPONSE_CHAIN_TAG_NAME: return FilterBinding.Type.RESPONSE;
+ default: throw new IllegalArgumentException("Unknown filter chain tag: " + chainTag);
+ }
+ }
+
static int readPort(ModelElement spec, boolean isHosted, DeployLogger logger) {
Integer port = spec.integerAttribute("port");
if (port == null)