Skip to content
Snippets Groups Projects
Commit 4d3734a8 authored by Henry Oswald's avatar Henry Oswald
Browse files

simplified overleaf routes and added dynamic cookie domain

parent c55ea303
Branches
No related tags found
No related merge requests found
Path = require "path" Path = require "path"
express = require('express') express = require('express')
Settings = require('settings-sharelatex') Settings = require('settings-sharelatex')
logger = require 'logger-sharelatex' logger = require 'logger-sharelatex'
metrics = require('metrics-sharelatex') metrics = require('metrics-sharelatex')
crawlerLogger = require('./CrawlerLogger') crawlerLogger = require('./CrawlerLogger')
...@@ -78,23 +79,27 @@ app.use OldAssetProxy ...@@ -78,23 +79,27 @@ app.use OldAssetProxy
webRouter.use cookieParser(Settings.security.sessionSecret) webRouter.use cookieParser(Settings.security.sessionSecret)
webRouter.use (req, res, next)-> sessionConfig =
req.isOverleaf = req.headers.host.indexOf("overleaf") != -1
next()
webRouter.use session
resave: false resave: false
saveUninitialized:false saveUninitialized:false
secret:Settings.security.sessionSecret secret:Settings.security.sessionSecret
proxy: Settings.behindProxy proxy: Settings.behindProxy
cookie: cookie:
domain: if Settings.isOverleaf then Settings.overleaf.cookieDomain else Settings.cookieDomain domain: Settings.cookieDomain
maxAge: Settings.cookieSessionLength maxAge: Settings.cookieSessionLength
secure: Settings.secureCookie secure: Settings.secureCookie
store: sessionStore store: sessionStore
key: Settings.cookieName key: Settings.cookieName
rolling: true rolling: true
webRouter.use (req, res, next)->
req.isOverleaf = req.headers.host.indexOf("overleaf") != -1
if req.isOverleaf
sessionConfig.cookie.domain = Settings.overleaf.cookieDomain
session(sessionConfig)(req, res, next)
else
session(sessionConfig)(req, res, next)
# passport # passport
webRouter.use passport.initialize() webRouter.use passport.initialize()
webRouter.use passport.session() webRouter.use passport.session()
...@@ -148,14 +153,6 @@ webRouter.use (req, res, next) -> ...@@ -148,14 +153,6 @@ webRouter.use (req, res, next) ->
res.status(503) res.status(503)
res.render("general/closed", {title:"maintenance"}) res.render("general/closed", {title:"maintenance"})
onlyOnOverleaf = (req, res, next)->
if req.isOverleaf
next()
else
ErrorController.notFound(req, res)
webRouter.use(onlyOnOverleaf, require('../ol_router'));
profiler = require "v8-profiler" profiler = require "v8-profiler"
privateApiRouter.get "/profile", (req, res) -> privateApiRouter.get "/profile", (req, res) ->
time = parseInt(req.query.time || "1000") time = parseInt(req.query.time || "1000")
......
ol_router = require('express').Router();
ol_router.use '/is_ol', (req, res)->
res.send("true")
module.exports = ol_router
\ No newline at end of file
...@@ -48,11 +48,19 @@ LabelsController = require('./Features/Labels/LabelsController') ...@@ -48,11 +48,19 @@ LabelsController = require('./Features/Labels/LabelsController')
logger = require("logger-sharelatex") logger = require("logger-sharelatex")
_ = require("underscore") _ = require("underscore")
onlyOnOverleaf = (req, res, next)->
if req.isOverleaf
next()
else
ErrorController.notFound(req, res)
module.exports = class Router module.exports = class Router
constructor: (webRouter, privateApiRouter, publicApiRouter)-> constructor: (webRouter, privateApiRouter, publicApiRouter)->
if !Settings.allowPublicAccess if !Settings.allowPublicAccess
webRouter.all '*', AuthenticationController.requireGlobalLogin webRouter.all '*', AuthenticationController.requireGlobalLogin
webRouter.get '/is_ol', onlyOnOverleaf, (req, res)->
res.send("true")
webRouter.get '/login', UserPagesController.loginPage webRouter.get '/login', UserPagesController.loginPage
AuthenticationController.addEndpointToLoginWhitelist '/login' AuthenticationController.addEndpointToLoginWhitelist '/login'
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment