You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by bt...@apache.org on 2017/03/15 10:01:58 UTC
[12/22] james-project git commit: JAMES-1958 Rename
HttpsConfiguration to TlsConfiguration
JAMES-1958 Rename HttpsConfiguration to TlsConfiguration
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/9db1633a
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/9db1633a
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/9db1633a
Branch: refs/heads/master
Commit: 9db1633a54787945706da2a4b3edd746f4757f74
Parents: 642be79
Author: benwa <bt...@linagora.com>
Authored: Mon Mar 13 17:31:26 2017 +0700
Committer: benwa <bt...@linagora.com>
Committed: Wed Mar 15 09:02:31 2017 +0700
----------------------------------------------------------------------
.../modules/server/WebAdminServerModule.java | 8 +-
.../james/webadmin/HttpsConfiguration.java | 148 -------------------
.../apache/james/webadmin/TlsConfiguration.java | 148 +++++++++++++++++++
.../james/webadmin/WebAdminConfiguration.java | 22 +--
.../apache/james/webadmin/WebAdminServer.java | 16 +-
.../james/webadmin/HttpsConfigurationTest.java | 101 -------------
.../james/webadmin/TlsConfigurationTest.java | 101 +++++++++++++
.../webadmin/WebAdminConfigurationTest.java | 16 +-
8 files changed, 278 insertions(+), 282 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/james-project/blob/9db1633a/server/container/guice/protocols/webadmin/src/main/java/org/apache/james/modules/server/WebAdminServerModule.java
----------------------------------------------------------------------
diff --git a/server/container/guice/protocols/webadmin/src/main/java/org/apache/james/modules/server/WebAdminServerModule.java b/server/container/guice/protocols/webadmin/src/main/java/org/apache/james/modules/server/WebAdminServerModule.java
index c100dcb..431d0d5 100644
--- a/server/container/guice/protocols/webadmin/src/main/java/org/apache/james/modules/server/WebAdminServerModule.java
+++ b/server/container/guice/protocols/webadmin/src/main/java/org/apache/james/modules/server/WebAdminServerModule.java
@@ -33,7 +33,7 @@ import org.apache.james.utils.GuiceProbe;
import org.apache.james.utils.PropertiesProvider;
import org.apache.james.utils.WebAdminGuiceProbe;
import org.apache.james.webadmin.FixedPort;
-import org.apache.james.webadmin.HttpsConfiguration;
+import org.apache.james.webadmin.TlsConfiguration;
import org.apache.james.webadmin.Routes;
import org.apache.james.webadmin.WebAdminConfiguration;
import org.apache.james.webadmin.WebAdminServer;
@@ -112,10 +112,10 @@ public class WebAdminServerModule extends AbstractModule {
}
}
- private HttpsConfiguration readHttpsConfiguration(PropertiesConfiguration configurationFile) {
+ private TlsConfiguration readHttpsConfiguration(PropertiesConfiguration configurationFile) {
boolean enabled = configurationFile.getBoolean("https.enabled", DEFAULT_HTTPS_DISABLED);
if (enabled) {
- return HttpsConfiguration.builder()
+ return TlsConfiguration.builder()
.enabled()
.raw(configurationFile.getString("https.keystore", DEFAULT_NO_KEYSTORE),
configurationFile.getString("https.password", DEFAULT_NO_PASSWORD),
@@ -123,7 +123,7 @@ public class WebAdminServerModule extends AbstractModule {
configurationFile.getString("https.trust.password", DEFAULT_NO_TRUST_PASSWORD))
.build();
}
- return HttpsConfiguration.builder()
+ return TlsConfiguration.builder()
.disabled()
.build();
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/9db1633a/server/protocols/webadmin/src/main/java/org/apache/james/webadmin/HttpsConfiguration.java
----------------------------------------------------------------------
diff --git a/server/protocols/webadmin/src/main/java/org/apache/james/webadmin/HttpsConfiguration.java b/server/protocols/webadmin/src/main/java/org/apache/james/webadmin/HttpsConfiguration.java
deleted file mode 100644
index 3c6a49e..0000000
--- a/server/protocols/webadmin/src/main/java/org/apache/james/webadmin/HttpsConfiguration.java
+++ /dev/null
@@ -1,148 +0,0 @@
-/****************************************************************
- * Licensed to the Apache Software Foundation (ASF) under one *
- * or more contributor license agreements. See the NOTICE file *
- * distributed with this work for additional information *
- * regarding copyright ownership. The ASF licenses this file *
- * to you under the Apache License, Version 2.0 (the *
- * "License"); you may not use this file except in compliance *
- * with the License. You may obtain a copy of the License at *
- * *
- * http://www.apache.org/licenses/LICENSE-2.0 *
- * *
- * Unless required by applicable law or agreed to in writing, *
- * software distributed under the License is distributed on an *
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY *
- * KIND, either express or implied. See the License for the *
- * specific language governing permissions and limitations *
- * under the License. *
- ****************************************************************/
-
-package org.apache.james.webadmin;
-
-import java.util.Objects;
-import java.util.Optional;
-
-import com.google.common.annotations.VisibleForTesting;
-import com.google.common.base.Preconditions;
-
-public class HttpsConfiguration {
-
- public static Builder builder() {
- return new Builder();
- }
-
- public static class Builder {
- private Optional<Boolean> enabled = Optional.empty();
- private String keystoreFilePath;
- private String keystorePassword;
- private String truststoreFilePath;
- private String truststorePassword;
-
- public Builder enable(boolean isEnabled) {
- this.enabled = Optional.of(isEnabled);
- return this;
- }
-
- public Builder enabled() {
- return enable(true);
- }
-
- public Builder disabled() {
- return enable(false);
- }
-
- public Builder raw(String keystoreFilePath,
- String keystorePassword,
- String truststoreFilePath,
- String truststorePassword){
- Preconditions.checkNotNull(keystoreFilePath);
- Preconditions.checkNotNull(keystorePassword);
-
- this.keystoreFilePath = keystoreFilePath;
- this.keystorePassword = keystorePassword;
- this.truststoreFilePath = truststoreFilePath;
- this.truststorePassword = truststorePassword;
- return this;
- }
-
- public Builder selfSigned(String keystoreFilePath, String keystorePassword){
- Preconditions.checkNotNull(keystoreFilePath);
- Preconditions.checkNotNull(keystorePassword);
-
- this.enabled = Optional.of(true);
- this.keystoreFilePath = keystoreFilePath;
- this.keystorePassword = keystorePassword;
- return this;
- }
-
- public HttpsConfiguration build() {
- Preconditions.checkState(enabled.isPresent(), "You need to specify if https is enabled");
- Preconditions.checkState(!enabled.get() || hasKeystoreInformation(), "If enabled, you need to provide keystore information");
- Preconditions.checkState(optionalHasTrustStoreInformation(), "You need to provide both information about trustStore");
- return new HttpsConfiguration(enabled.get(), keystoreFilePath, keystorePassword, truststoreFilePath, truststorePassword);
- }
-
- private boolean optionalHasTrustStoreInformation() {
- return (truststoreFilePath == null) == (truststorePassword == null);
- }
-
- private boolean hasKeystoreInformation() {
- return keystorePassword != null && keystoreFilePath != null;
- }
-
- }
-
- private final boolean enabled;
- private final String keystoreFilePath;
- private final String keystorePassword;
- private final String truststoreFilePath;
- private final String truststorePassword;
-
- @VisibleForTesting
- HttpsConfiguration(boolean enabled, String keystoreFilePath, String keystorePassword, String truststoreFilePath, String truststorePassword) {
- this.enabled = enabled;
- this.keystoreFilePath = keystoreFilePath;
- this.keystorePassword = keystorePassword;
- this.truststoreFilePath = truststoreFilePath;
- this.truststorePassword = truststorePassword;
- }
-
- public boolean isEnabled() {
- return enabled;
- }
-
- public String getKeystoreFilePath() {
- return keystoreFilePath;
- }
-
- public String getKeystorePassword() {
- return keystorePassword;
- }
-
- public String getTruststoreFilePath() {
- return truststoreFilePath;
- }
-
- public String getTruststorePassword() {
- return truststorePassword;
- }
-
- @Override
- public final boolean equals(Object o) {
- if (o instanceof HttpsConfiguration) {
- HttpsConfiguration that = (HttpsConfiguration) o;
-
- return Objects.equals(this.enabled, that.enabled)
- && Objects.equals(this.keystoreFilePath, that.keystoreFilePath)
- && Objects.equals(this.keystorePassword, that.keystorePassword)
- && Objects.equals(this.truststoreFilePath, that.truststoreFilePath)
- && Objects.equals(this.truststorePassword, that.truststorePassword);
- }
- return false;
- }
-
- @Override
- public final int hashCode() {
- return Objects.hash(enabled, keystoreFilePath, keystorePassword, truststoreFilePath, truststorePassword);
- }
-}
http://git-wip-us.apache.org/repos/asf/james-project/blob/9db1633a/server/protocols/webadmin/src/main/java/org/apache/james/webadmin/TlsConfiguration.java
----------------------------------------------------------------------
diff --git a/server/protocols/webadmin/src/main/java/org/apache/james/webadmin/TlsConfiguration.java b/server/protocols/webadmin/src/main/java/org/apache/james/webadmin/TlsConfiguration.java
new file mode 100644
index 0000000..78cc209
--- /dev/null
+++ b/server/protocols/webadmin/src/main/java/org/apache/james/webadmin/TlsConfiguration.java
@@ -0,0 +1,148 @@
+/****************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one *
+ * or more contributor license agreements. See the NOTICE file *
+ * distributed with this work for additional information *
+ * regarding copyright ownership. The ASF licenses this file *
+ * to you under the Apache License, Version 2.0 (the *
+ * "License"); you may not use this file except in compliance *
+ * with the License. You may obtain a copy of the License at *
+ * *
+ * http://www.apache.org/licenses/LICENSE-2.0 *
+ * *
+ * Unless required by applicable law or agreed to in writing, *
+ * software distributed under the License is distributed on an *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY *
+ * KIND, either express or implied. See the License for the *
+ * specific language governing permissions and limitations *
+ * under the License. *
+ ****************************************************************/
+
+package org.apache.james.webadmin;
+
+import java.util.Objects;
+import java.util.Optional;
+
+import com.google.common.annotations.VisibleForTesting;
+import com.google.common.base.Preconditions;
+
+public class TlsConfiguration {
+
+ public static Builder builder() {
+ return new Builder();
+ }
+
+ public static class Builder {
+ private Optional<Boolean> enabled = Optional.empty();
+ private String keystoreFilePath;
+ private String keystorePassword;
+ private String truststoreFilePath;
+ private String truststorePassword;
+
+ public Builder enable(boolean isEnabled) {
+ this.enabled = Optional.of(isEnabled);
+ return this;
+ }
+
+ public Builder enabled() {
+ return enable(true);
+ }
+
+ public Builder disabled() {
+ return enable(false);
+ }
+
+ public Builder raw(String keystoreFilePath,
+ String keystorePassword,
+ String truststoreFilePath,
+ String truststorePassword){
+ Preconditions.checkNotNull(keystoreFilePath);
+ Preconditions.checkNotNull(keystorePassword);
+
+ this.keystoreFilePath = keystoreFilePath;
+ this.keystorePassword = keystorePassword;
+ this.truststoreFilePath = truststoreFilePath;
+ this.truststorePassword = truststorePassword;
+ return this;
+ }
+
+ public Builder selfSigned(String keystoreFilePath, String keystorePassword){
+ Preconditions.checkNotNull(keystoreFilePath);
+ Preconditions.checkNotNull(keystorePassword);
+
+ this.enabled = Optional.of(true);
+ this.keystoreFilePath = keystoreFilePath;
+ this.keystorePassword = keystorePassword;
+ return this;
+ }
+
+ public TlsConfiguration build() {
+ Preconditions.checkState(enabled.isPresent(), "You need to specify if https is enabled");
+ Preconditions.checkState(!enabled.get() || hasKeystoreInformation(), "If enabled, you need to provide keystore information");
+ Preconditions.checkState(optionalHasTrustStoreInformation(), "You need to provide both information about trustStore");
+ return new TlsConfiguration(enabled.get(), keystoreFilePath, keystorePassword, truststoreFilePath, truststorePassword);
+ }
+
+ private boolean optionalHasTrustStoreInformation() {
+ return (truststoreFilePath == null) == (truststorePassword == null);
+ }
+
+ private boolean hasKeystoreInformation() {
+ return keystorePassword != null && keystoreFilePath != null;
+ }
+
+ }
+
+ private final boolean enabled;
+ private final String keystoreFilePath;
+ private final String keystorePassword;
+ private final String truststoreFilePath;
+ private final String truststorePassword;
+
+ @VisibleForTesting
+ TlsConfiguration(boolean enabled, String keystoreFilePath, String keystorePassword, String truststoreFilePath, String truststorePassword) {
+ this.enabled = enabled;
+ this.keystoreFilePath = keystoreFilePath;
+ this.keystorePassword = keystorePassword;
+ this.truststoreFilePath = truststoreFilePath;
+ this.truststorePassword = truststorePassword;
+ }
+
+ public boolean isEnabled() {
+ return enabled;
+ }
+
+ public String getKeystoreFilePath() {
+ return keystoreFilePath;
+ }
+
+ public String getKeystorePassword() {
+ return keystorePassword;
+ }
+
+ public String getTruststoreFilePath() {
+ return truststoreFilePath;
+ }
+
+ public String getTruststorePassword() {
+ return truststorePassword;
+ }
+
+ @Override
+ public final boolean equals(Object o) {
+ if (o instanceof TlsConfiguration) {
+ TlsConfiguration that = (TlsConfiguration) o;
+
+ return Objects.equals(this.enabled, that.enabled)
+ && Objects.equals(this.keystoreFilePath, that.keystoreFilePath)
+ && Objects.equals(this.keystorePassword, that.keystorePassword)
+ && Objects.equals(this.truststoreFilePath, that.truststoreFilePath)
+ && Objects.equals(this.truststorePassword, that.truststorePassword);
+ }
+ return false;
+ }
+
+ @Override
+ public final int hashCode() {
+ return Objects.hash(enabled, keystoreFilePath, keystorePassword, truststoreFilePath, truststorePassword);
+ }
+}
http://git-wip-us.apache.org/repos/asf/james-project/blob/9db1633a/server/protocols/webadmin/src/main/java/org/apache/james/webadmin/WebAdminConfiguration.java
----------------------------------------------------------------------
diff --git a/server/protocols/webadmin/src/main/java/org/apache/james/webadmin/WebAdminConfiguration.java b/server/protocols/webadmin/src/main/java/org/apache/james/webadmin/WebAdminConfiguration.java
index c87589b..339b213 100644
--- a/server/protocols/webadmin/src/main/java/org/apache/james/webadmin/WebAdminConfiguration.java
+++ b/server/protocols/webadmin/src/main/java/org/apache/james/webadmin/WebAdminConfiguration.java
@@ -39,11 +39,11 @@ public class WebAdminConfiguration {
private Optional<Boolean> enabled = Optional.empty();
private Port port;
private Optional<Boolean> enableCORS = Optional.empty();
- private Optional<HttpsConfiguration> httpsConfiguration = Optional.empty();
+ private Optional<TlsConfiguration> httpsConfiguration = Optional.empty();
private Optional<String> urlCORSOrigin = Optional.empty();
- public Builder https(HttpsConfiguration httpsConfiguration) {
- this.httpsConfiguration = Optional.of(httpsConfiguration);
+ public Builder https(TlsConfiguration tlsConfiguration) {
+ this.httpsConfiguration = Optional.of(tlsConfiguration);
return this;
}
@@ -88,7 +88,7 @@ public class WebAdminConfiguration {
return new WebAdminConfiguration(enabled.get(),
port,
httpsConfiguration.orElse(
- HttpsConfiguration.builder()
+ TlsConfiguration.builder()
.disabled()
.build()),
enableCORS.orElse(DEFAULT_CORS_DISABLED),
@@ -98,15 +98,15 @@ public class WebAdminConfiguration {
private final boolean enabled;
private final Port port;
- private final HttpsConfiguration httpsConfiguration;
+ private final TlsConfiguration tlsConfiguration;
private final boolean enableCORS;
private final String urlCORSOrigin;
@VisibleForTesting
- WebAdminConfiguration(boolean enabled, Port port, HttpsConfiguration httpsConfiguration, boolean enableCORS, String urlCORSOrigin) {
+ WebAdminConfiguration(boolean enabled, Port port, TlsConfiguration tlsConfiguration, boolean enableCORS, String urlCORSOrigin) {
this.enabled = enabled;
this.port = port;
- this.httpsConfiguration = httpsConfiguration;
+ this.tlsConfiguration = tlsConfiguration;
this.enableCORS = enableCORS;
this.urlCORSOrigin = urlCORSOrigin;
}
@@ -123,8 +123,8 @@ public class WebAdminConfiguration {
return port;
}
- public HttpsConfiguration getHttpsConfiguration() {
- return httpsConfiguration;
+ public TlsConfiguration getTlsConfiguration() {
+ return tlsConfiguration;
}
public boolean isEnableCORS() {
@@ -138,7 +138,7 @@ public class WebAdminConfiguration {
return Objects.equals(this.enabled, that.enabled)
&& Objects.equals(this.port, that.port)
- && Objects.equals(this.httpsConfiguration, that.httpsConfiguration)
+ && Objects.equals(this.tlsConfiguration, that.tlsConfiguration)
&& Objects.equals(this.enableCORS, that.enableCORS)
&& Objects.equals(this.urlCORSOrigin, that.urlCORSOrigin);
}
@@ -147,6 +147,6 @@ public class WebAdminConfiguration {
@Override
public final int hashCode() {
- return Objects.hash(enabled, port, httpsConfiguration, enableCORS, urlCORSOrigin);
+ return Objects.hash(enabled, port, tlsConfiguration, enableCORS, urlCORSOrigin);
}
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/9db1633a/server/protocols/webadmin/src/main/java/org/apache/james/webadmin/WebAdminServer.java
----------------------------------------------------------------------
diff --git a/server/protocols/webadmin/src/main/java/org/apache/james/webadmin/WebAdminServer.java b/server/protocols/webadmin/src/main/java/org/apache/james/webadmin/WebAdminServer.java
index e3fb368..e2144bf 100644
--- a/server/protocols/webadmin/src/main/java/org/apache/james/webadmin/WebAdminServer.java
+++ b/server/protocols/webadmin/src/main/java/org/apache/james/webadmin/WebAdminServer.java
@@ -29,7 +29,6 @@ import org.apache.commons.configuration.ConfigurationException;
import org.apache.commons.configuration.HierarchicalConfiguration;
import org.apache.james.lifecycle.api.Configurable;
import org.apache.james.metrics.api.MetricFactory;
-import org.apache.james.metrics.api.NoopMetricFactory;
import org.apache.james.webadmin.authentication.AuthenticationFilter;
import org.apache.james.webadmin.authentication.NoAuthenticationFilter;
import org.apache.james.webadmin.metric.MetricPostFilter;
@@ -41,9 +40,6 @@ import org.slf4j.LoggerFactory;
import com.google.common.annotations.VisibleForTesting;
import com.google.common.collect.ImmutableSet;
-import spark.Filter;
-import spark.Request;
-import spark.Response;
import spark.Service;
public class WebAdminServer implements Configurable {
@@ -99,12 +95,12 @@ public class WebAdminServer implements Configurable {
}
private void configureHTTPS() {
- HttpsConfiguration httpsConfiguration = configuration.getHttpsConfiguration();
- if (httpsConfiguration.isEnabled()) {
- service.secure(httpsConfiguration.getKeystoreFilePath(),
- httpsConfiguration.getKeystorePassword(),
- httpsConfiguration.getTruststoreFilePath(),
- httpsConfiguration.getTruststorePassword());
+ TlsConfiguration tlsConfiguration = configuration.getTlsConfiguration();
+ if (tlsConfiguration.isEnabled()) {
+ service.secure(tlsConfiguration.getKeystoreFilePath(),
+ tlsConfiguration.getKeystorePassword(),
+ tlsConfiguration.getTruststoreFilePath(),
+ tlsConfiguration.getTruststorePassword());
LOGGER.info("Web admin set up to use HTTPS");
}
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/9db1633a/server/protocols/webadmin/src/test/java/org/apache/james/webadmin/HttpsConfigurationTest.java
----------------------------------------------------------------------
diff --git a/server/protocols/webadmin/src/test/java/org/apache/james/webadmin/HttpsConfigurationTest.java b/server/protocols/webadmin/src/test/java/org/apache/james/webadmin/HttpsConfigurationTest.java
deleted file mode 100644
index 0d69cbe..0000000
--- a/server/protocols/webadmin/src/test/java/org/apache/james/webadmin/HttpsConfigurationTest.java
+++ /dev/null
@@ -1,101 +0,0 @@
-/****************************************************************
- * Licensed to the Apache Software Foundation (ASF) under one *
- * or more contributor license agreements. See the NOTICE file *
- * distributed with this work for additional information *
- * regarding copyright ownership. The ASF licenses this file *
- * to you under the Apache License, Version 2.0 (the *
- * "License"); you may not use this file except in compliance *
- * with the License. You may obtain a copy of the License at *
- * *
- * http://www.apache.org/licenses/LICENSE-2.0 *
- * *
- * Unless required by applicable law or agreed to in writing, *
- * software distributed under the License is distributed on an *
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY *
- * KIND, either express or implied. See the License for the *
- * specific language governing permissions and limitations *
- * under the License. *
- ****************************************************************/
-
-package org.apache.james.webadmin;
-
-import static org.assertj.core.api.Assertions.assertThat;
-
-import org.junit.Rule;
-import org.junit.Test;
-import org.junit.rules.ExpectedException;
-
-import nl.jqno.equalsverifier.EqualsVerifier;
-
-public class HttpsConfigurationTest {
-
- @Rule
- public ExpectedException expectedException = ExpectedException.none();
-
- @Test
- public void buildShouldThrowWhenNotEnabled() {
- expectedException.expect(IllegalStateException.class);
-
- HttpsConfiguration.builder().build();
- }
-
- @Test
- public void buildShouldThrowWhenEnableWithoutKeystore() {
- expectedException.expect(IllegalStateException.class);
-
- HttpsConfiguration.builder().enabled().build();
- }
-
- @Test
- public void selfSignedShouldThrowOnNullKeyStorePath() {
- expectedException.expect(NullPointerException.class);
-
- HttpsConfiguration.builder()
- .enabled()
- .selfSigned(null, "abc");
- }
-
- @Test
- public void selfSignedShouldThrowOnNullKeyStorePassword() {
- expectedException.expect(NullPointerException.class);
-
- HttpsConfiguration.builder()
- .enabled()
- .selfSigned("abc", null);
- }
-
- @Test
- public void buildShouldWorkOnDisabledHttps() {
- assertThat(
- HttpsConfiguration.builder()
- .disabled()
- .build())
- .isEqualTo(new HttpsConfiguration(false, null, null, null, null));
- }
-
- @Test
- public void buildShouldWorkOnSelfSignedHttps() {
- assertThat(
- HttpsConfiguration.builder()
- .enabled()
- .selfSigned("abcd", "efgh")
- .build())
- .isEqualTo(new HttpsConfiguration(true, "abcd", "efgh", null, null));
- }
-
- @Test
- public void buildShouldWorkOnTrustedHttps() {
- assertThat(
- HttpsConfiguration.builder()
- .enabled()
- .raw("a", "b", "c", "d")
- .build())
- .isEqualTo(new HttpsConfiguration(true, "a", "b", "c", "d"));
- }
-
- @Test
- public void shouldRespectBeanContract() {
- EqualsVerifier.forClass(HttpsConfiguration.class).verify();
- }
-
-}
http://git-wip-us.apache.org/repos/asf/james-project/blob/9db1633a/server/protocols/webadmin/src/test/java/org/apache/james/webadmin/TlsConfigurationTest.java
----------------------------------------------------------------------
diff --git a/server/protocols/webadmin/src/test/java/org/apache/james/webadmin/TlsConfigurationTest.java b/server/protocols/webadmin/src/test/java/org/apache/james/webadmin/TlsConfigurationTest.java
new file mode 100644
index 0000000..c21ddb7
--- /dev/null
+++ b/server/protocols/webadmin/src/test/java/org/apache/james/webadmin/TlsConfigurationTest.java
@@ -0,0 +1,101 @@
+/****************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one *
+ * or more contributor license agreements. See the NOTICE file *
+ * distributed with this work for additional information *
+ * regarding copyright ownership. The ASF licenses this file *
+ * to you under the Apache License, Version 2.0 (the *
+ * "License"); you may not use this file except in compliance *
+ * with the License. You may obtain a copy of the License at *
+ * *
+ * http://www.apache.org/licenses/LICENSE-2.0 *
+ * *
+ * Unless required by applicable law or agreed to in writing, *
+ * software distributed under the License is distributed on an *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY *
+ * KIND, either express or implied. See the License for the *
+ * specific language governing permissions and limitations *
+ * under the License. *
+ ****************************************************************/
+
+package org.apache.james.webadmin;
+
+import static org.assertj.core.api.Assertions.assertThat;
+
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.rules.ExpectedException;
+
+import nl.jqno.equalsverifier.EqualsVerifier;
+
+public class TlsConfigurationTest {
+
+ @Rule
+ public ExpectedException expectedException = ExpectedException.none();
+
+ @Test
+ public void buildShouldThrowWhenNotEnabled() {
+ expectedException.expect(IllegalStateException.class);
+
+ TlsConfiguration.builder().build();
+ }
+
+ @Test
+ public void buildShouldThrowWhenEnableWithoutKeystore() {
+ expectedException.expect(IllegalStateException.class);
+
+ TlsConfiguration.builder().enabled().build();
+ }
+
+ @Test
+ public void selfSignedShouldThrowOnNullKeyStorePath() {
+ expectedException.expect(NullPointerException.class);
+
+ TlsConfiguration.builder()
+ .enabled()
+ .selfSigned(null, "abc");
+ }
+
+ @Test
+ public void selfSignedShouldThrowOnNullKeyStorePassword() {
+ expectedException.expect(NullPointerException.class);
+
+ TlsConfiguration.builder()
+ .enabled()
+ .selfSigned("abc", null);
+ }
+
+ @Test
+ public void buildShouldWorkOnDisabledHttps() {
+ assertThat(
+ TlsConfiguration.builder()
+ .disabled()
+ .build())
+ .isEqualTo(new TlsConfiguration(false, null, null, null, null));
+ }
+
+ @Test
+ public void buildShouldWorkOnSelfSignedHttps() {
+ assertThat(
+ TlsConfiguration.builder()
+ .enabled()
+ .selfSigned("abcd", "efgh")
+ .build())
+ .isEqualTo(new TlsConfiguration(true, "abcd", "efgh", null, null));
+ }
+
+ @Test
+ public void buildShouldWorkOnTrustedHttps() {
+ assertThat(
+ TlsConfiguration.builder()
+ .enabled()
+ .raw("a", "b", "c", "d")
+ .build())
+ .isEqualTo(new TlsConfiguration(true, "a", "b", "c", "d"));
+ }
+
+ @Test
+ public void shouldRespectBeanContract() {
+ EqualsVerifier.forClass(TlsConfiguration.class).verify();
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/james-project/blob/9db1633a/server/protocols/webadmin/src/test/java/org/apache/james/webadmin/WebAdminConfigurationTest.java
----------------------------------------------------------------------
diff --git a/server/protocols/webadmin/src/test/java/org/apache/james/webadmin/WebAdminConfigurationTest.java b/server/protocols/webadmin/src/test/java/org/apache/james/webadmin/WebAdminConfigurationTest.java
index 4606e94..48df15e 100644
--- a/server/protocols/webadmin/src/test/java/org/apache/james/webadmin/WebAdminConfigurationTest.java
+++ b/server/protocols/webadmin/src/test/java/org/apache/james/webadmin/WebAdminConfigurationTest.java
@@ -48,7 +48,7 @@ public class WebAdminConfigurationTest {
.build())
.isEqualTo(new WebAdminConfiguration(false,
null,
- HttpsConfiguration.builder().disabled().build(),
+ TlsConfiguration.builder().disabled().build(),
false,
"*"));
}
@@ -70,14 +70,14 @@ public class WebAdminConfigurationTest {
.isEqualTo(new WebAdminConfiguration(
true,
PORT,
- HttpsConfiguration.builder().disabled().build(),
+ TlsConfiguration.builder().disabled().build(),
false,
"*"));
}
@Test
public void builderShouldAcceptHttps() {
- HttpsConfiguration httpsConfiguration = HttpsConfiguration.builder()
+ TlsConfiguration tlsConfiguration = TlsConfiguration.builder()
.enable(true)
.selfSigned("abcd", "efgh")
.build();
@@ -85,13 +85,13 @@ public class WebAdminConfigurationTest {
assertThat(
WebAdminConfiguration.builder()
.enabled()
- .https(httpsConfiguration)
+ .https(tlsConfiguration)
.port(PORT)
.build())
.isEqualTo(new WebAdminConfiguration(
true,
PORT,
- httpsConfiguration,
+ tlsConfiguration,
false,
"*"));
}
@@ -107,7 +107,7 @@ public class WebAdminConfigurationTest {
.isEqualTo(new WebAdminConfiguration(
true,
PORT,
- HttpsConfiguration.builder().disabled().build(),
+ TlsConfiguration.builder().disabled().build(),
true,
"*"));
}
@@ -123,7 +123,7 @@ public class WebAdminConfigurationTest {
.isEqualTo(new WebAdminConfiguration(
true,
PORT,
- HttpsConfiguration.builder().disabled().build(),
+ TlsConfiguration.builder().disabled().build(),
false,
"*"));
}
@@ -141,7 +141,7 @@ public class WebAdminConfigurationTest {
.isEqualTo(new WebAdminConfiguration(
true,
PORT,
- HttpsConfiguration.builder().disabled().build(),
+ TlsConfiguration.builder().disabled().build(),
true,
origin));
}
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org