From d11eccefc0d09a3221e7efb86815bdda5423ce39 Mon Sep 17 00:00:00 2001 From: Vittorio Palmisano Date: Wed, 17 Mar 2021 14:32:14 +0100 Subject: [PATCH 1/2] added cache control header for GET requests --- server/config/config.example.js | 3 +++ server/server.js | 17 ++++++++++++++++- 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/server/config/config.example.js b/server/config/config.example.js index b44e841e..20ed1aff 100644 --- a/server/config/config.example.js +++ b/server/config/config.example.js @@ -364,6 +364,9 @@ module.exports = requestTimeout : 20000, // Socket retries when timeout requestRetries : 3, + // If > 0, sets a cache-control max-age (in seconds) to the GET response + // headers. + getRequestsCachePeriod : 0, // Mediasoup settings mediasoup : { diff --git a/server/server.js b/server/server.js index 02dfaee5..cdc766f5 100755 --- a/server/server.js +++ b/server/server.js @@ -87,12 +87,27 @@ const tls = const app = express(); app.use(helmet.hsts()); -const sharedCookieParser=cookieParser(); +const sharedCookieParser = cookieParser(); app.use(sharedCookieParser); app.use(bodyParser.json({ limit: '5mb' })); app.use(bodyParser.urlencoded({ limit: '5mb', extended: true })); +if (config.getRequestsCachePeriod) +{ + app.use((req, res, next) => { + if (req.method === 'GET') + { + res.set('Cache-control', `public, max-age=${config.getRequestsCachePeriod}`) + } + else + { + res.set('Cache-control', 'no-store'); + } + next(); + }); +} + const session = expressSession({ secret : config.cookieSecret, name : config.cookieName, From 874bc6c8a9d0e6fd5e7eccefc51299e7743ec6d4 Mon Sep 17 00:00:00 2001 From: Vittorio Palmisano Date: Wed, 17 Mar 2021 14:33:51 +0100 Subject: [PATCH 2/2] fixed comparison --- server/server.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/server.js b/server/server.js index cdc766f5..5fdbb733 100755 --- a/server/server.js +++ b/server/server.js @@ -93,7 +93,7 @@ app.use(sharedCookieParser); app.use(bodyParser.json({ limit: '5mb' })); app.use(bodyParser.urlencoded({ limit: '5mb', extended: true })); -if (config.getRequestsCachePeriod) +if (config.getRequestsCachePeriod > 0) { app.use((req, res, next) => { if (req.method === 'GET')