diff options
author | Manuel Bentele | 2021-06-28 09:26:17 +0200 |
---|---|---|
committer | Manuel Bentele | 2021-06-28 09:26:17 +0200 |
commit | c4f1dbb6071808d8c20c1149b249d9d526b56d46 (patch) | |
tree | 780068a74c985ecbe73e437615f66fbc0f75ee1e | |
parent | [server] Add URL path /bwlp/container/clusterimages to retrieve information a... (diff) | |
download | tutor-module-c4f1dbb6.tar.gz tutor-module-c4f1dbb6.tar.xz tutor-module-c4f1dbb6.zip |
[server] Make webserver listen on every address in Docker setup
6 files changed, 26 insertions, 1 deletions
diff --git a/dozentenmodulserver/.env b/dozentenmodulserver/.env index 4fa72517..91859ed9 100644 --- a/dozentenmodulserver/.env +++ b/dozentenmodulserver/.env @@ -16,6 +16,7 @@ DOZMOD_SERVER_STORAGE=/mnt/bwLehrpool DOZMOD_SERVER_MASTER_HOST=bwlp-masterserver.ruf.uni-freiburg.de DOZMOD_SERVER_MASTER_PORT=9091 DOZMOD_SERVER_MASTER_USE_SSL=true +DOZMOD_SERVER_WEB_BIND_LOCALHOST=false # container 'dozmod-database' DOZMOD_DATABASE_IPV4=192.168.200.21 diff --git a/dozentenmodulserver/README.md b/dozentenmodulserver/README.md index 92c0673c..7905d5e2 100644 --- a/dozentenmodulserver/README.md +++ b/dozentenmodulserver/README.md @@ -39,6 +39,7 @@ export DOZMOD_DATABASE_LOCATION_TABLE="" export DOZMOD_MASTER_SERVER_HOST="bwlp-masterserver.ruf.uni-freiburg.de" export DOZMOD_MASTER_SERVER_PORT="9091" export DOZMOD_MASTER_SERVER_USE_SSL="true" +export DOZMOD_SERVER_WEB_BIND_LOCALHOST="false" export DOZMOD_VSTORE_PATH="/mnt/bwLehrpool" # finalize the template content with values from environment variables diff --git a/dozentenmodulserver/docker-compose.yml b/dozentenmodulserver/docker-compose.yml index c0a81a23..93379db1 100644 --- a/dozentenmodulserver/docker-compose.yml +++ b/dozentenmodulserver/docker-compose.yml @@ -15,6 +15,7 @@ services: DOZMOD_SERVER_MASTER_HOST: ${DOZMOD_SERVER_MASTER_HOST} DOZMOD_SERVER_MASTER_PORT: ${DOZMOD_SERVER_MASTER_PORT} DOZMOD_SERVER_MASTER_USE_SSL: ${DOZMOD_SERVER_MASTER_USE_SSL} + DOZMOD_SERVER_WEB_BIND_LOCALHOST: ${DOZMOD_SERVER_WEB_BIND_LOCALHOST} DOZMOD_DATABASE_NAME: ${DOZMOD_DATABASE_NAME} DOZMOD_DATABASE_HOST: ${DOZMOD_DATABASE_IPV4} DOZMOD_DATABASE_USER: ${DOZMOD_DATABASE_USER} diff --git a/dozentenmodulserver/setup/config.properties.tmpl b/dozentenmodulserver/setup/config.properties.tmpl index c4055462..efe4d169 100644 --- a/dozentenmodulserver/setup/config.properties.tmpl +++ b/dozentenmodulserver/setup/config.properties.tmpl @@ -9,3 +9,4 @@ db.location-table = {{ .Env.DOZMOD_DATABASE_LOCATION_TABLE }} master.address = {{ .Env.DOZMOD_SERVER_MASTER_HOST }} master.port = {{ .Env.DOZMOD_SERVER_MASTER_PORT }} master.ssl = {{ .Env.DOZMOD_SERVER_MASTER_USE_SSL }} +webserver.bindLocalhost = {{ .Env.DOZMOD_SERVER_WEB_BIND_LOCALHOST }} diff --git a/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/util/Configuration.java b/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/util/Configuration.java index 8b6caf3d..58134cfc 100644 --- a/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/util/Configuration.java +++ b/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/util/Configuration.java @@ -20,6 +20,8 @@ public class Configuration { private static final Logger LOGGER = Logger.getLogger(Configuration.class); private static final DateTimeFormatter subdirDate = DateTimeFormat.forPattern("yy-MM"); + private static final String DEFAULT_WEBSERVER_BIND_ADDRESS_LOCAL = "127.0.0.1"; + private static File vmStoreBasePath; private static File vmStoreProdPath; private static String dbUri; @@ -28,6 +30,7 @@ public class Configuration { private static String masterAddress; private static boolean masterSsl = true; private static int masterPort = 9091; + private static boolean webServerBindLocalhost = true; private static String dbLocationTable; private static SSLContext ctx = null; @@ -56,6 +59,10 @@ public class Configuration { } catch (Exception e) { } + if (!Util.isEmptyString(prop.getProperty("webserver.bindLocalhost"))) { + webServerBindLocalhost = Boolean.parseBoolean(prop.getProperty("webserver.bindLocalhost")); + } + // Currently all fields are mandatory but there might be optional settings in the future return vmStoreBasePath != null && dbUri != null && dbUsername != null && dbPassword != null; } @@ -104,6 +111,19 @@ public class Configuration { return masterPort; } + public static boolean getWebServerBindLocalhost() { + return webServerBindLocalhost; + } + + public static String getWebServerBindAddressLocal() { + if (getWebServerBindLocalhost()) { + return DEFAULT_WEBSERVER_BIND_ADDRESS_LOCAL; + } else { + // do not bind to the localhost address + return null; + } + } + // Dynamically Computed fields public static File getCurrentVmStorePath() { diff --git a/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/web/WebServer.java b/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/web/WebServer.java index 9840a4c2..a3d9d293 100644 --- a/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/web/WebServer.java +++ b/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/web/WebServer.java @@ -25,6 +25,7 @@ import org.openslx.bwlp.sat.database.mappers.DbLecture; import org.openslx.bwlp.sat.database.mappers.DbLecture.LaunchData; import org.openslx.bwlp.sat.database.mappers.DbLecture.RunScript; import org.openslx.bwlp.sat.fileserv.FileServer; +import org.openslx.bwlp.sat.util.Configuration; import org.openslx.bwlp.thrift.iface.NetRule; import org.openslx.bwlp.thrift.iface.NetShare; import org.openslx.bwlp.thrift.iface.NetShareAuth; @@ -47,7 +48,7 @@ public class WebServer extends NanoHTTPD { private static final Serializer serializer = new Persister(); public WebServer(int port) { - super("127.0.0.1", port); + super(Configuration.getWebServerBindAddressLocal(), port); super.maxRequestSize = 65535; } |