Jelajahi Sumber

Disable rolling sessions in web-admin (#9307)

GitOrigin-RevId: 7f098d5222d21187f219c0906757b913890e85e7
Miguel Serrano 4 tahun lalu
induk
melakukan
e414c65028

+ 18 - 16
services/web/app/src/infrastructure/Server.js

@@ -161,7 +161,7 @@ webRouter.use(
     },
     store: sessionStore,
     key: Settings.cookieName,
-    rolling: true,
+    rolling: Settings.cookieRollingSession === true,
   })
 )
 if (Features.hasFeature('saas')) {
@@ -203,23 +203,25 @@ webRouter.use(webRouter.csrf.middleware)
 webRouter.use(translations.i18nMiddleware)
 webRouter.use(translations.setLangBasedOnDomainMiddleware)
 
-// Measure expiry from last request, not last login
-webRouter.use(function (req, res, next) {
-  if (!req.session.noSessionCallback) {
-    req.session.touch()
-    if (SessionManager.isUserLoggedIn(req.session)) {
-      UserSessionsManager.touch(
-        SessionManager.getSessionUser(req.session),
-        err => {
-          if (err) {
-            logger.err({ err }, 'error extending user session')
+if (Settings.cookieRollingSession) {
+  // Measure expiry from last request, not last login
+  webRouter.use(function (req, res, next) {
+    if (!req.session.noSessionCallback) {
+      req.session.touch()
+      if (SessionManager.isUserLoggedIn(req.session)) {
+        UserSessionsManager.touch(
+          SessionManager.getSessionUser(req.session),
+          err => {
+            if (err) {
+              logger.err({ err }, 'error extending user session')
+            }
           }
-        }
-      )
+        )
+      }
     }
-  }
-  next()
-})
+    next()
+  })
+}
 
 webRouter.use(ReferalConnect.use)
 expressLocals(webRouter, privateApiRouter, publicApiRouter)

+ 1 - 0
services/web/config/settings.defaults.js

@@ -264,6 +264,7 @@ module.exports = {
   // replace subdomain with dot to have them accessible on all subdomains
   cookieDomain: process.env.COOKIE_DOMAIN,
   cookieName: process.env.COOKIE_NAME || 'sharelatex.sid',
+  cookieRollingSession: true,
 
   // this is only used if cookies are used for clsi backend
   // clsiCookieKey: "clsiserver"