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/07/31 07:45:36 UTC
[6/7] james-project git commit: JAMES-2099 Add admin configuration
for host which should be used on swagger
JAMES-2099 Add admin configuration for host which should be used on swagger
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/5c2baa7b
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/5c2baa7b
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/5c2baa7b
Branch: refs/heads/master
Commit: 5c2baa7beddadd67473dfc1ec5240665ac5554f4
Parents: 9cd602f
Author: quynhn <qn...@linagora.com>
Authored: Wed Jul 26 12:06:01 2017 +0700
Committer: quynhn <qn...@linagora.com>
Committed: Mon Jul 31 10:57:04 2017 +0700
----------------------------------------------------------------------
.../etc/james/templates/webadmin.properties | 1 +
.../destination/conf/webadmin.properties | 1 +
.../destination/conf/webadmin.properties | 1 +
.../sample-configuration/webadmin.properties | 3 ++-
.../modules/server/WebAdminServerModule.java | 1 +
.../src/test/resources/webadmin.properties | 3 ++-
.../james/webadmin/WebAdminConfiguration.java | 24 ++++++++++++++++----
.../james/webadmin/swagger/SwaggerParser.java | 4 ++--
8 files changed, 30 insertions(+), 8 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/james-project/blob/5c2baa7b/dockerfiles/packaging/debian/package/etc/james/templates/webadmin.properties
----------------------------------------------------------------------
diff --git a/dockerfiles/packaging/debian/package/etc/james/templates/webadmin.properties b/dockerfiles/packaging/debian/package/etc/james/templates/webadmin.properties
index 38e2ba0..36b6f1e 100644
--- a/dockerfiles/packaging/debian/package/etc/james/templates/webadmin.properties
+++ b/dockerfiles/packaging/debian/package/etc/james/templates/webadmin.properties
@@ -20,6 +20,7 @@
enabled=true
port=8000
+host=localhost
# Defaults to false
https.enabled=false
http://git-wip-us.apache.org/repos/asf/james-project/blob/5c2baa7b/dockerfiles/run/guice/cassandra-ldap/destination/conf/webadmin.properties
----------------------------------------------------------------------
diff --git a/dockerfiles/run/guice/cassandra-ldap/destination/conf/webadmin.properties b/dockerfiles/run/guice/cassandra-ldap/destination/conf/webadmin.properties
index 38e2ba0..36b6f1e 100644
--- a/dockerfiles/run/guice/cassandra-ldap/destination/conf/webadmin.properties
+++ b/dockerfiles/run/guice/cassandra-ldap/destination/conf/webadmin.properties
@@ -20,6 +20,7 @@
enabled=true
port=8000
+host=localhost
# Defaults to false
https.enabled=false
http://git-wip-us.apache.org/repos/asf/james-project/blob/5c2baa7b/dockerfiles/run/guice/cassandra/destination/conf/webadmin.properties
----------------------------------------------------------------------
diff --git a/dockerfiles/run/guice/cassandra/destination/conf/webadmin.properties b/dockerfiles/run/guice/cassandra/destination/conf/webadmin.properties
index 38e2ba0..36b6f1e 100644
--- a/dockerfiles/run/guice/cassandra/destination/conf/webadmin.properties
+++ b/dockerfiles/run/guice/cassandra/destination/conf/webadmin.properties
@@ -20,6 +20,7 @@
enabled=true
port=8000
+host=localhost
# Defaults to false
https.enabled=false
http://git-wip-us.apache.org/repos/asf/james-project/blob/5c2baa7b/server/container/guice/memory-guice/sample-configuration/webadmin.properties
----------------------------------------------------------------------
diff --git a/server/container/guice/memory-guice/sample-configuration/webadmin.properties b/server/container/guice/memory-guice/sample-configuration/webadmin.properties
index 70a6cb9..a9b5cc2 100644
--- a/server/container/guice/memory-guice/sample-configuration/webadmin.properties
+++ b/server/container/guice/memory-guice/sample-configuration/webadmin.properties
@@ -19,4 +19,5 @@
# DO NOT USE IT AS SUCH AND ADAPT IT TO YOUR NEEDS
enabled=true
-port=8000
\ No newline at end of file
+port=8000
+host=localhost
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/james-project/blob/5c2baa7b/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 c7820cc..88c1cd6 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
@@ -86,6 +86,7 @@ public class WebAdminServerModule extends AbstractModule {
.tls(readHttpsConfiguration(configurationFile))
.enableCORS(configurationFile.getBoolean("cors.enable", DEFAULT_CORS_DISABLED))
.urlCORSOrigin(configurationFile.getString("cors.origin", DEFAULT_NO_CORS_ORIGIN))
+ .host(configurationFile.getString("host", WebAdminConfiguration.DEFAULT_HOST))
.build();
} catch (FileNotFoundException e) {
LOGGER.info("No webadmin.properties file. Disabling WebAdmin interface.");
http://git-wip-us.apache.org/repos/asf/james-project/blob/5c2baa7b/server/protocols/webadmin-integration-test/src/test/resources/webadmin.properties
----------------------------------------------------------------------
diff --git a/server/protocols/webadmin-integration-test/src/test/resources/webadmin.properties b/server/protocols/webadmin-integration-test/src/test/resources/webadmin.properties
index 09f46dd..475d655 100644
--- a/server/protocols/webadmin-integration-test/src/test/resources/webadmin.properties
+++ b/server/protocols/webadmin-integration-test/src/test/resources/webadmin.properties
@@ -1,2 +1,3 @@
enabled=true
-port=8000
\ No newline at end of file
+port=8000
+host=localhost
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/james-project/blob/5c2baa7b/server/protocols/webadmin/webadmin-core/src/main/java/org/apache/james/webadmin/WebAdminConfiguration.java
----------------------------------------------------------------------
diff --git a/server/protocols/webadmin/webadmin-core/src/main/java/org/apache/james/webadmin/WebAdminConfiguration.java b/server/protocols/webadmin/webadmin-core/src/main/java/org/apache/james/webadmin/WebAdminConfiguration.java
index 716645c..b7608cf 100644
--- a/server/protocols/webadmin/webadmin-core/src/main/java/org/apache/james/webadmin/WebAdminConfiguration.java
+++ b/server/protocols/webadmin/webadmin-core/src/main/java/org/apache/james/webadmin/WebAdminConfiguration.java
@@ -30,6 +30,7 @@ public class WebAdminConfiguration {
public static final boolean DEFAULT_CORS_DISABLED = false;
public static final String CORS_ALL_ORIGINS = "*";
+ public static final String DEFAULT_HOST = "localhost";
public static WebAdminConfiguration testingConfiguration() {
return WebAdminConfiguration.builder()
@@ -52,6 +53,7 @@ public class WebAdminConfiguration {
private Optional<Boolean> enableCORS = Optional.empty();
private Optional<TlsConfiguration> tlsConfiguration = Optional.empty();
private Optional<String> urlCORSOrigin = Optional.empty();
+ private Optional<String> host = Optional.empty();
public Builder tls(TlsConfiguration tlsConfiguration) {
this.tlsConfiguration = Optional.of(tlsConfiguration);
@@ -98,6 +100,11 @@ public class WebAdminConfiguration {
return enableCORS(false);
}
+ public Builder host(String host) {
+ this.host = Optional.ofNullable(host);
+ return this;
+ }
+
public WebAdminConfiguration build() {
Preconditions.checkState(enabled.isPresent(), "You need to explicitly enable or disable WebAdmin server");
Preconditions.checkState(!enabled.get() || port.isPresent(), "You need to specify a port for WebAdminConfiguration");
@@ -105,7 +112,8 @@ public class WebAdminConfiguration {
port,
tlsConfiguration,
enableCORS.orElse(DEFAULT_CORS_DISABLED),
- urlCORSOrigin.orElse(CORS_ALL_ORIGINS));
+ urlCORSOrigin.orElse(CORS_ALL_ORIGINS),
+ host.orElse(DEFAULT_HOST));
}
}
@@ -114,14 +122,17 @@ public class WebAdminConfiguration {
private final Optional<TlsConfiguration> tlsConfiguration;
private final boolean enableCORS;
private final String urlCORSOrigin;
+ private final String host;
@VisibleForTesting
- WebAdminConfiguration(boolean enabled, Optional<Port> port, Optional<TlsConfiguration> tlsConfiguration, boolean enableCORS, String urlCORSOrigin) {
+ WebAdminConfiguration(boolean enabled, Optional<Port> port, Optional<TlsConfiguration> tlsConfiguration,
+ boolean enableCORS, String urlCORSOrigin, String host) {
this.enabled = enabled;
this.port = port;
this.tlsConfiguration = tlsConfiguration;
this.enableCORS = enableCORS;
this.urlCORSOrigin = urlCORSOrigin;
+ this.host = host;
}
public boolean isEnabled() {
@@ -148,6 +159,10 @@ public class WebAdminConfiguration {
return tlsConfiguration.isPresent();
}
+ public String getHost() {
+ return host;
+ }
+
@Override
public final boolean equals(Object o) {
if (o instanceof WebAdminConfiguration) {
@@ -157,13 +172,14 @@ public class WebAdminConfiguration {
&& Objects.equals(this.port, that.port)
&& Objects.equals(this.tlsConfiguration, that.tlsConfiguration)
&& Objects.equals(this.enableCORS, that.enableCORS)
- && Objects.equals(this.urlCORSOrigin, that.urlCORSOrigin);
+ && Objects.equals(this.urlCORSOrigin, that.urlCORSOrigin)
+ && Objects.equals(this.host, that.host);
}
return false;
}
@Override
public final int hashCode() {
- return Objects.hash(enabled, port, tlsConfiguration, enableCORS, urlCORSOrigin);
+ return Objects.hash(enabled, port, tlsConfiguration, enableCORS, urlCORSOrigin, host);
}
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/5c2baa7b/server/protocols/webadmin/webadmin-swagger/src/main/java/org/apache/james/webadmin/swagger/SwaggerParser.java
----------------------------------------------------------------------
diff --git a/server/protocols/webadmin/webadmin-swagger/src/main/java/org/apache/james/webadmin/swagger/SwaggerParser.java b/server/protocols/webadmin/webadmin-swagger/src/main/java/org/apache/james/webadmin/swagger/SwaggerParser.java
index 8ebd303..7bdec19 100644
--- a/server/protocols/webadmin/webadmin-swagger/src/main/java/org/apache/james/webadmin/swagger/SwaggerParser.java
+++ b/server/protocols/webadmin/webadmin-swagger/src/main/java/org/apache/james/webadmin/swagger/SwaggerParser.java
@@ -41,7 +41,7 @@ public class SwaggerParser {
private static final String API_DOC_VERSION = "V1.0";
private static final String API_DOC_TITLE = "JAMES Web Admin API";
private static final String API_DOC_DESCRIPTION = "All the web administration API for JAMES";
- private static final String JAMES_WEBADMIN_HOST = "localhost:";
+ public static final String HOST_PORT_SEPARATOR = ":";
@Inject
public static String getSwaggerJson(String packageName, WebAdminConfiguration configuration) throws JsonProcessingException {
@@ -68,7 +68,7 @@ public class SwaggerParser {
beanConfig.setVersion(API_DOC_VERSION);
beanConfig.setTitle(API_DOC_TITLE);
beanConfig.setDescription(API_DOC_DESCRIPTION);
- beanConfig.setHost(JAMES_WEBADMIN_HOST + configuration.getPort().toInt());
+ beanConfig.setHost(configuration.getHost() + HOST_PORT_SEPARATOR + configuration.getPort().toInt());
beanConfig.setSchemes(SCHEMES);
beanConfig.setScan(true);
beanConfig.scanAndRead();
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org