diff --git a/conf/core/server.conf b/conf/core/server.conf index 686cf1005dea38ba5c01b32b5fe96bfe610e7a01..4264b374635cf8a3dd7ff83bb6e4305e1c7f3ec3 100644 --- a/conf/core/server.conf +++ b/conf/core/server.conf @@ -67,3 +67,5 @@ GLOBAL_ENTITY_PERMISSIONS_FILE=./conf/core/global_entity_permissions.xml CERTIFICATES_KEY_PASSWORD= CERTIFICATES_KEY_STORE_PATH= CERTIFICATES_KEY_STORE_PASSWORD= + +WEBUI_HTTP_HEADER_CACHE_MAX_AGE=28800 \ No newline at end of file diff --git a/src/main/java/caosdb/server/ServerProperties.java b/src/main/java/caosdb/server/ServerProperties.java index 10ede003057096b7dd8555bcdb39ba9f195205af..5e295ae5e84057be6c8604b21902465a550347d8 100644 --- a/src/main/java/caosdb/server/ServerProperties.java +++ b/src/main/java/caosdb/server/ServerProperties.java @@ -129,6 +129,8 @@ public class ServerProperties extends Properties { public static final String KEY_GLOBAL_ENTITY_PERMISSIONS_FILE = "GLOBAL_ENTITY_PERMISSIONS_FILE"; public static final String KEY_TIMEZONE = "TIMEZONE"; + public static final String KEY_WEBUI_HTTP_HEADER_CACHE_MAX_AGE = + "WEBUI_HTTP_HEADER_CACHE_MAX_AGE"; /** * Read the config files and initialize the server properties. diff --git a/src/main/java/caosdb/server/resource/Webinterface.java b/src/main/java/caosdb/server/resource/Webinterface.java index 334f55f037c70185235dc02ccb618fd2f71dc77c..7343fc5ff681a56f1dcba633bd7f3de4ba27f813 100644 --- a/src/main/java/caosdb/server/resource/Webinterface.java +++ b/src/main/java/caosdb/server/resource/Webinterface.java @@ -22,8 +22,13 @@ */ package caosdb.server.resource; +import caosdb.server.CaosDBServer; +import caosdb.server.ServerProperties; import java.io.File; import java.io.IOException; +import java.util.ArrayList; +import java.util.List; +import org.restlet.data.CacheDirective; import org.restlet.data.Header; import org.restlet.data.MediaType; import org.restlet.data.Status; @@ -42,7 +47,7 @@ public class Webinterface extends ServerResource { super.doInit(); } - private final File PUBLIC_DIRECTORY = new File("caosdb-webui/public/").getAbsoluteFile(); + private static final File PUBLIC_DIRECTORY = new File("caosdb-webui/public/").getAbsoluteFile(); @Get public Representation deliver() throws IOException { @@ -86,6 +91,12 @@ public class Webinterface extends ServerResource { final FileRepresentation ret = new FileRepresentation(file, mt); + List<CacheDirective> cacheDirectives = new ArrayList<>(); + cacheDirectives.add( + new CacheDirective( + HeaderConstants.CACHE_MAX_AGE, + CaosDBServer.getServerProperty(ServerProperties.KEY_WEBUI_HTTP_HEADER_CACHE_MAX_AGE))); + getResponse().setCacheDirectives(cacheDirectives); return ret; } }