summaryrefslogtreecommitdiffstats
path: root/config-model
diff options
context:
space:
mode:
authorMorten Tokle <mortent@oath.com>2018-09-11 14:28:20 +0200
committerBjørn Christian Seime <bjorncs@oath.com>2018-09-12 10:49:39 +0200
commitd75b41bfec78c369342645ce7274c9edf6d9ced6 (patch)
tree1fc7488dc2836fba93980755b280c5db79cb7f74 /config-model
parent3e3f194ab5e09579a815e5f0332a695894b11154 (diff)
ssl-provider ComponentDefinition -> BundleSpec
Diffstat (limited to 'config-model')
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/container/http/ssl/CustomSslProvider.java6
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/container/http/ssl/DefaultSslProvider.java8
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/container/http/xml/JettyConnectorBuilder.java4
-rw-r--r--config-model/src/main/resources/schema/containercluster.rnc2
-rw-r--r--config-model/src/test/java/com/yahoo/vespa/model/container/xml/JettyContainerModelBuilderTest.java21
-rw-r--r--config-model/src/test/schema-test-files/services.xml2
6 files changed, 22 insertions, 21 deletions
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/container/http/ssl/CustomSslProvider.java b/config-model/src/main/java/com/yahoo/vespa/model/container/http/ssl/CustomSslProvider.java
index 46daa2e5c43..bc211925576 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/container/http/ssl/CustomSslProvider.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/container/http/ssl/CustomSslProvider.java
@@ -13,9 +13,11 @@ import static com.yahoo.component.ComponentSpecification.fromString;
* @author mortent
*/
public class CustomSslProvider extends SimpleComponent implements ConnectorConfig.Producer {
- public CustomSslProvider(String componentId, String className, String bundle) {
+ public static final String COMPONENT_ID_PREFIX = "ssl-provider@";
+
+ public CustomSslProvider(String serverName, String className, String bundle) {
super(new ComponentModel(
- new BundleInstantiationSpecification(new ComponentId(componentId),
+ new BundleInstantiationSpecification(new ComponentId(COMPONENT_ID_PREFIX + serverName),
fromString(className),
fromString(bundle))));
}
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/container/http/ssl/DefaultSslProvider.java b/config-model/src/main/java/com/yahoo/vespa/model/container/http/ssl/DefaultSslProvider.java
index 8c4ef9ddf72..fc4b6b8cd0f 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/container/http/ssl/DefaultSslProvider.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/container/http/ssl/DefaultSslProvider.java
@@ -16,7 +16,7 @@ import static com.yahoo.component.ComponentSpecification.fromString;
* @author mortent
*/
public class DefaultSslProvider extends SimpleComponent implements ConnectorConfig.Producer {
- public static final String COMPONENT_ID = "default-ssl-provider";
+ public static final String COMPONENT_ID_PREFIX = "default-ssl-provider@";
public static final String COMPONENT_CLASS = DefaultSslContextFactoryProvider.class.getName();
public static final String COMPONENT_BUNDLE = "jdisc_http_service";
@@ -25,9 +25,9 @@ public class DefaultSslProvider extends SimpleComponent implements ConnectorConf
private final String caCertificatePath;
private final ConnectorConfig.Ssl.ClientAuth.Enum clientAuthentication;
- public DefaultSslProvider(String privateKeyPath, String certificatePath, String caCertificatePath, String clientAuthentication) {
+ public DefaultSslProvider(String servername, String privateKeyPath, String certificatePath, String caCertificatePath, String clientAuthentication) {
super(new ComponentModel(
- new BundleInstantiationSpecification(new ComponentId(COMPONENT_ID),
+ new BundleInstantiationSpecification(new ComponentId(COMPONENT_ID_PREFIX+servername),
fromString(COMPONENT_CLASS),
fromString(COMPONENT_BUNDLE))));
this.privateKeyPath = privateKeyPath;
@@ -46,7 +46,7 @@ public class DefaultSslProvider extends SimpleComponent implements ConnectorConf
}
public SimpleComponent getComponent() {
- return new SimpleComponent(new ComponentModel(COMPONENT_ID, COMPONENT_CLASS, COMPONENT_BUNDLE));
+ return new SimpleComponent(new ComponentModel(getComponentId().stringValue(), COMPONENT_CLASS, COMPONENT_BUNDLE));
}
private static ConnectorConfig.Ssl.ClientAuth.Enum mapToConfigEnum(String clientAuthValue) {
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/container/http/xml/JettyConnectorBuilder.java b/config-model/src/main/java/com/yahoo/vespa/model/container/http/xml/JettyConnectorBuilder.java
index 4ab70b05a54..6061ce45ce4 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/container/http/xml/JettyConnectorBuilder.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/container/http/xml/JettyConnectorBuilder.java
@@ -54,15 +54,15 @@ public class JettyConnectorBuilder extends VespaDomBuilder.DomConfigProducerBuil
Optional<String> caCertificateFile = XmlHelper.getOptionalChildValue(sslConfigurator, "ca-certificates-file");
Optional<String> clientAuthentication = XmlHelper.getOptionalChildValue(sslConfigurator, "client-authentication");
return new DefaultSslProvider(
+ serverName,
privateKeyFile,
certificateFile,
caCertificateFile.orElse(null),
clientAuthentication.orElse(null));
} else if (sslProviderConfigurator != null) {
- String id = sslProviderConfigurator.getAttribute("id");
String className = sslProviderConfigurator.getAttribute("class");
String bundle = sslProviderConfigurator.getAttribute("bundle");
- return new CustomSslProvider(id, className, bundle);
+ return new CustomSslProvider(serverName, className, bundle);
} else {
// No ssl config..
return new DummySslProvider(serverName);
diff --git a/config-model/src/main/resources/schema/containercluster.rnc b/config-model/src/main/resources/schema/containercluster.rnc
index 4aaa718fb84..991bd13f4a0 100644
--- a/config-model/src/main/resources/schema/containercluster.rnc
+++ b/config-model/src/main/resources/schema/containercluster.rnc
@@ -99,7 +99,7 @@ Ssl = element ssl {
}
SslProvider = element ssl-provider {
- ComponentDefinition
+ BundleSpec
}
# REST-API:
diff --git a/config-model/src/test/java/com/yahoo/vespa/model/container/xml/JettyContainerModelBuilderTest.java b/config-model/src/test/java/com/yahoo/vespa/model/container/xml/JettyContainerModelBuilderTest.java
index 5d06e616a11..ff50acce3f0 100644
--- a/config-model/src/test/java/com/yahoo/vespa/model/container/xml/JettyContainerModelBuilderTest.java
+++ b/config-model/src/test/java/com/yahoo/vespa/model/container/xml/JettyContainerModelBuilderTest.java
@@ -265,21 +265,21 @@ public class JettyContainerModelBuilderTest extends ContainerModelBuilderTestBas
"</jdisc>");
createModel(root, clusterElem);
- ConnectorConfig minimalCfg = root.getConfig(ConnectorConfig.class, "default/http/jdisc-jetty/minimal/default-ssl-provider");
+ ConnectorConfig minimalCfg = root.getConfig(ConnectorConfig.class, "default/http/jdisc-jetty/minimal/default-ssl-provider@minimal");
assertTrue(minimalCfg.ssl().enabled());
assertThat(minimalCfg.ssl().privateKeyFile(), is(equalTo("/foo/key")));
assertThat(minimalCfg.ssl().certificateFile(), is(equalTo("/foo/cert")));
assertThat(minimalCfg.ssl().caCertificateFile(), is(equalTo("")));
assertThat(minimalCfg.ssl().clientAuth(), is(equalTo(ConnectorConfig.Ssl.ClientAuth.Enum.DISABLED)));
- ConnectorConfig withCaCerts = root.getConfig(ConnectorConfig.class, "default/http/jdisc-jetty/with-cacerts/default-ssl-provider");
+ ConnectorConfig withCaCerts = root.getConfig(ConnectorConfig.class, "default/http/jdisc-jetty/with-cacerts/default-ssl-provider@with-cacerts");
assertTrue(withCaCerts.ssl().enabled());
assertThat(withCaCerts.ssl().privateKeyFile(), is(equalTo("/foo/key")));
assertThat(withCaCerts.ssl().certificateFile(), is(equalTo("/foo/cert")));
assertThat(withCaCerts.ssl().caCertificateFile(), is(equalTo("/foo/cacerts")));
assertThat(withCaCerts.ssl().clientAuth(), is(equalTo(ConnectorConfig.Ssl.ClientAuth.Enum.DISABLED)));
- ConnectorConfig needClientAuth = root.getConfig(ConnectorConfig.class, "default/http/jdisc-jetty/need-client-auth/default-ssl-provider");
+ ConnectorConfig needClientAuth = root.getConfig(ConnectorConfig.class, "default/http/jdisc-jetty/need-client-auth/default-ssl-provider@need-client-auth");
assertTrue(needClientAuth.ssl().enabled());
assertThat(needClientAuth.ssl().privateKeyFile(), is(equalTo("/foo/key")));
assertThat(needClientAuth.ssl().certificateFile(), is(equalTo("/foo/cert")));
@@ -288,16 +288,16 @@ public class JettyContainerModelBuilderTest extends ContainerModelBuilderTestBas
ContainerCluster cluster = (ContainerCluster) root.getChildren().get("default");
List<ConnectorFactory> connectorFactories = cluster.getChildrenByTypeRecursive(ConnectorFactory.class);
- connectorFactories.forEach(connectorFactory -> assertChildComponentExists(connectorFactory, DefaultSslProvider.COMPONENT_ID, DefaultSslProvider.COMPONENT_CLASS));
+ connectorFactories.forEach(connectorFactory -> assertChildComponentExists(connectorFactory, DefaultSslProvider.COMPONENT_CLASS));
}
@Test
- public void verify_ssl_provider_configuration() {
+ public void verify_tht_ssl_provider_configuration_configures_correct_config() {
Element clusterElem = DomBuilderTest.parse(
"<jdisc id='default' version='1.0' jetty='true'>",
" <http>",
" <server port='9000' id='ssl'>",
- " <ssl-provider id='ssl-provider' class='com.yahoo.CustomSslProvider' bundle='mybundle'/>",
+ " <ssl-provider class='com.yahoo.CustomSslProvider' bundle='mybundle'/>",
" </server>",
" </http>",
nodesXml,
@@ -305,14 +305,14 @@ public class JettyContainerModelBuilderTest extends ContainerModelBuilderTestBas
"</jdisc>");
createModel(root, clusterElem);
- ConnectorConfig sslProvider = root.getConfig(ConnectorConfig.class, "default/http/jdisc-jetty/ssl/ssl-provider");
+ ConnectorConfig sslProvider = root.getConfig(ConnectorConfig.class, "default/http/jdisc-jetty/ssl/ssl-provider@ssl");
assertTrue(sslProvider.ssl().enabled());
ContainerCluster cluster = (ContainerCluster) root.getChildren().get("default");
List<ConnectorFactory> connectorFactories = cluster.getChildrenByTypeRecursive(ConnectorFactory.class);
ConnectorFactory connectorFactory = connectorFactories.get(0);
- assertChildComponentExists(connectorFactory, "ssl-provider", "com.yahoo.CustomSslProvider");
+ assertChildComponentExists(connectorFactory, "com.yahoo.CustomSslProvider");
}
private static void assertConnectorHasInjectedComponents(ConnectorFactory connectorFactory, String... componentNames) {
@@ -334,11 +334,10 @@ public class JettyContainerModelBuilderTest extends ContainerModelBuilderTestBas
assertThat(spec.bundle.toString(), is(bundleName));
}
- private static void assertChildComponentExists(ConnectorFactory connectorFactory, String componentId, String className) {
+ private static void assertChildComponentExists(ConnectorFactory connectorFactory, String className) {
Optional<SimpleComponent> simpleComponent = connectorFactory.getChildren().values().stream()
.map(z -> (SimpleComponent) z)
- .filter(component -> component.getComponentId().stringValue().equals(componentId) &&
- component.getClassId().stringValue().equals(className))
+ .filter(component -> component.getClassId().stringValue().equals(className))
.findFirst();
assertTrue(simpleComponent.isPresent());
}
diff --git a/config-model/src/test/schema-test-files/services.xml b/config-model/src/test/schema-test-files/services.xml
index b34fa71cf11..21d6693720e 100644
--- a/config-model/src/test/schema-test-files/services.xml
+++ b/config-model/src/test/schema-test-files/services.xml
@@ -130,7 +130,7 @@
</ssl>
</server>
<server port="4083" id="sslProvider">
- <ssl-provider id="ssl-provider" class="com.yahoo.MySslProvider" bundle="mybundle"/>
+ <ssl-provider class="com.yahoo.MySslProvider" bundle="mybundle"/>
</server>
</http>