summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorManuel Bentele2021-06-28 09:26:17 +0200
committerManuel Bentele2021-06-28 09:26:17 +0200
commitc4f1dbb6071808d8c20c1149b249d9d526b56d46 (patch)
tree780068a74c985ecbe73e437615f66fbc0f75ee1e
parent[server] Add URL path /bwlp/container/clusterimages to retrieve information a... (diff)
downloadtutor-module-c4f1dbb6.tar.gz
tutor-module-c4f1dbb6.tar.xz
tutor-module-c4f1dbb6.zip
[server] Make webserver listen on every address in Docker setup
-rw-r--r--dozentenmodulserver/.env1
-rw-r--r--dozentenmodulserver/README.md1
-rw-r--r--dozentenmodulserver/docker-compose.yml1
-rw-r--r--dozentenmodulserver/setup/config.properties.tmpl1
-rw-r--r--dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/util/Configuration.java20
-rw-r--r--dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/web/WebServer.java3
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;
}