From f73629f8d95da8e1432727b68cabe653d0918917 Mon Sep 17 00:00:00 2001 From: Henry Oswald Date: Fri, 26 Sep 2014 14:52:00 +0100 Subject: [PATCH 1/2] v1 of sentinal support --- .../Features/Compile/CompileManager.coffee | 7 +-- .../ConnectedUsersManager.coffee | 5 +- .../DocumentUpdaterHandler.coffee | 5 +- .../Dropbox/DropboxWebhookHandler.coffee | 5 +- .../PasswordResetTokenHandler.coffee | 5 +- .../Features/Security/LoginRateLimiter.coffee | 5 +- .../ServerAdmin/AdminController.coffee | 5 +- .../coffee/infrastructure/RateLimiter.coffee | 5 +- services/web/package.json | 51 ++++++++++--------- 9 files changed, 44 insertions(+), 49 deletions(-) diff --git a/services/web/app/coffee/Features/Compile/CompileManager.coffee b/services/web/app/coffee/Features/Compile/CompileManager.coffee index 972b7d3286..ff3468b1f3 100755 --- a/services/web/app/coffee/Features/Compile/CompileManager.coffee +++ b/services/web/app/coffee/Features/Compile/CompileManager.coffee @@ -1,7 +1,8 @@ Settings = require('settings-sharelatex') -redis = require('redis') -rclient = redis.createClient(Settings.redis.web.port, Settings.redis.web.host) -rclient.auth(Settings.redis.web.password) + +redis = require("redis-sharelatex") +rclient = redis.createClient(Settings.redis.web) + DocumentUpdaterHandler = require "../DocumentUpdater/DocumentUpdaterHandler" Project = require("../../models/Project").Project ProjectRootDocManager = require "../Project/ProjectRootDocManager" diff --git a/services/web/app/coffee/Features/ConnectedUsers/ConnectedUsersManager.coffee b/services/web/app/coffee/Features/ConnectedUsers/ConnectedUsersManager.coffee index 7f20f3143e..caf4a45f53 100644 --- a/services/web/app/coffee/Features/ConnectedUsers/ConnectedUsersManager.coffee +++ b/services/web/app/coffee/Features/ConnectedUsers/ConnectedUsersManager.coffee @@ -2,9 +2,8 @@ _ = require("underscore") async = require("async") Settings = require('settings-sharelatex') logger = require("logger-sharelatex") -redis = require('redis') -rclient = redis.createClient(Settings.redis.web.port, Settings.redis.web.host) -rclient.auth(Settings.redis.web.password) +redis = require("redis-sharelatex") +rclient = redis.createClient(Settings.redis.web) ONE_HOUR_IN_S = 60 * 60 diff --git a/services/web/app/coffee/Features/DocumentUpdater/DocumentUpdaterHandler.coffee b/services/web/app/coffee/Features/DocumentUpdater/DocumentUpdaterHandler.coffee index c5fcc11209..b4c7ac01fb 100644 --- a/services/web/app/coffee/Features/DocumentUpdater/DocumentUpdaterHandler.coffee +++ b/services/web/app/coffee/Features/DocumentUpdater/DocumentUpdaterHandler.coffee @@ -7,9 +7,8 @@ async = require 'async' logger = require('logger-sharelatex') metrics = require('../../infrastructure/Metrics') slReqIdHelper = require('soa-req-id') -redis = require('redis') -rclient = redis.createClient(settings.redis.web.port, settings.redis.web.host) -rclient.auth(settings.redis.web.password) +redis = require("redis-sharelatex") +rclient = redis.createClient(settings.redis.web) Project = require("../../models/Project").Project ProjectLocator = require('../../Features/Project/ProjectLocator') diff --git a/services/web/app/coffee/Features/Dropbox/DropboxWebhookHandler.coffee b/services/web/app/coffee/Features/Dropbox/DropboxWebhookHandler.coffee index d29a0d3aa5..8fb5d1d9ae 100644 --- a/services/web/app/coffee/Features/Dropbox/DropboxWebhookHandler.coffee +++ b/services/web/app/coffee/Features/Dropbox/DropboxWebhookHandler.coffee @@ -4,9 +4,8 @@ async = require "async" User = require("../../models/User").User TpdsUpdateSender = require "../ThirdPartyDataStore/TpdsUpdateSender" -redis = require('redis') -rclient = redis.createClient(settings.redis.web.port, settings.redis.web.host) -rclient.auth(settings.redis.web.password) +redis = require("redis-sharelatex") +rclient = redis.createClient(settings.redis.web) module.exports = DropboxWebhookHandler = pollDropboxUids: (dropbox_uids, callback = (error) ->) -> diff --git a/services/web/app/coffee/Features/PasswordReset/PasswordResetTokenHandler.coffee b/services/web/app/coffee/Features/PasswordReset/PasswordResetTokenHandler.coffee index 3f51fce291..522e8dcfd6 100644 --- a/services/web/app/coffee/Features/PasswordReset/PasswordResetTokenHandler.coffee +++ b/services/web/app/coffee/Features/PasswordReset/PasswordResetTokenHandler.coffee @@ -1,7 +1,6 @@ Settings = require('settings-sharelatex') -redis = require('redis') -rclient = redis.createClient(Settings.redis.web.port, Settings.redis.web.host) -rclient.auth(Settings.redis.web.password) +redis = require("redis-sharelatex") +rclient = redis.createClient(Settings.redis.web) crypto = require("crypto") logger = require("logger-sharelatex") diff --git a/services/web/app/coffee/Features/Security/LoginRateLimiter.coffee b/services/web/app/coffee/Features/Security/LoginRateLimiter.coffee index 023fcdc0ef..a8453f9b81 100644 --- a/services/web/app/coffee/Features/Security/LoginRateLimiter.coffee +++ b/services/web/app/coffee/Features/Security/LoginRateLimiter.coffee @@ -1,7 +1,6 @@ Settings = require('settings-sharelatex') -redis = require('redis') -rclient = redis.createClient(Settings.redis.web.port, Settings.redis.web.host) -rclient.auth(Settings.redis.web.password) +redis = require("redis-sharelatex") +rclient = redis.createClient(Settings.redis.web) buildKey = (k)-> return "LoginRateLimit:#{k}" diff --git a/services/web/app/coffee/Features/ServerAdmin/AdminController.coffee b/services/web/app/coffee/Features/ServerAdmin/AdminController.coffee index 06c566f0aa..edc423fa8d 100755 --- a/services/web/app/coffee/Features/ServerAdmin/AdminController.coffee +++ b/services/web/app/coffee/Features/ServerAdmin/AdminController.coffee @@ -6,9 +6,8 @@ Project = require('../../models/Project').Project DocumentUpdaterHandler = require('../DocumentUpdater/DocumentUpdaterHandler') Settings = require('settings-sharelatex') util = require('util') -redis = require('redis') -rclient = redis.createClient(Settings.redis.web.port, Settings.redis.web.host) -rclient.auth(Settings.redis.web.password) +redis = require("redis-sharelatex") +rclient = redis.createClient(Settings.redis.web) RecurlyWrapper = require('../Subscription/RecurlyWrapper') SubscriptionHandler = require('../Subscription/SubscriptionHandler') projectEntityHandler = require('../Project/ProjectEntityHandler') diff --git a/services/web/app/coffee/infrastructure/RateLimiter.coffee b/services/web/app/coffee/infrastructure/RateLimiter.coffee index fc30cec744..cd0df4c43e 100644 --- a/services/web/app/coffee/infrastructure/RateLimiter.coffee +++ b/services/web/app/coffee/infrastructure/RateLimiter.coffee @@ -1,7 +1,6 @@ settings = require("settings-sharelatex") -redis = require('redis') -rclient = redis.createClient(settings.redis.web.port, settings.redis.web.host) -rclient.auth(settings.redis.web.password) +redis = require("redis-sharelatex") +rclient = redis.createClient(settings.redis.web) redback = require("redback").use(rclient) module.exports = diff --git a/services/web/package.json b/services/web/package.json index 528f40e075..f4f6b3be2f 100644 --- a/services/web/package.json +++ b/services/web/package.json @@ -3,44 +3,45 @@ "version": "0.1.0", "description": "The HTTP front end for ShareLaTeX", "repository": { - "type": "git", + "type": "git", "url": "https://github.com/sharelatex/web-sharelatex.git" }, "directories": { "public": "./public" }, "dependencies": { - "express": "3.3.4", - "mongoose": "3.8.8", - "mongojs": "0.10.1", - "underscore": "1.6.0", - "rimraf": "2.2.6", - "connect-redis": "1.4.5", - "redis": "0.10.1", - "request": "2.34.0", - "xml2js": "0.2.0", - "dateformat": "1.0.4-1.2.3", - "optimist": "0.6.1", + "archiver": "0.9.0", "async": "0.6.2", - "lynx": "0.1.1", - "session.socket.io": "0.1.4", - "socket.io": "0.9.16", - "mimelib": "0.2.14", + "bcrypt": "0.7.5", "bufferedstream": "1.6.0", - "settings-sharelatex": "git+https://github.com/sharelatex/settings-sharelatex.git#v1.0.0", - "logger-sharelatex": "git+https://github.com/sharelatex/logger-sharelatex.git#v1.0.0", - "metrics-sharelatex": "git+https://github.com/sharelatex/metrics-sharelatex.git#v1.0.0", - "translations-sharelatex": "git+https://github.com/sharelatex/translations-sharelatex.git#master", - "soa-req-id": "git+https://github.com/sharelatex/soa-req-id.git#v1.0.0", + "connect-redis": "1.4.5", + "dateformat": "1.0.4-1.2.3", + "express": "3.3.4", "fairy": "0.0.2", + "jade": "~1.3.1", + "logger-sharelatex": "git+https://github.com/sharelatex/logger-sharelatex.git#v1.0.0", + "lynx": "0.1.1", + "metrics-sharelatex": "git+https://github.com/sharelatex/metrics-sharelatex.git#v1.0.0", + "mimelib": "0.2.14", + "mocha": "1.17.1", + "mongojs": "0.10.1", + "mongoose": "3.8.8", "node-uuid": "1.4.1", "nodemailer": "0.6.1", - "bcrypt": "0.7.5", - "archiver": "0.9.0", - "mocha": "1.17.1", + "optimist": "0.6.1", "redback": "0.4.0", + "redis": "0.10.1", + "redis-sharelatex": "0.0.1", + "request": "2.34.0", + "rimraf": "2.2.6", "sanitizer": "0.1.1", - "jade": "~1.3.1" + "session.socket.io": "0.1.4", + "settings-sharelatex": "git+https://github.com/sharelatex/settings-sharelatex.git#v1.0.0", + "soa-req-id": "git+https://github.com/sharelatex/soa-req-id.git#v1.0.0", + "socket.io": "0.9.16", + "translations-sharelatex": "git+https://github.com/sharelatex/translations-sharelatex.git#master", + "underscore": "1.6.0", + "xml2js": "0.2.0" }, "devDependencies": { "chai": "", From 81307324fc615ea17ba880fd5891bc23c5a4f98a Mon Sep 17 00:00:00 2001 From: Henry Oswald Date: Fri, 26 Sep 2014 17:04:33 +0100 Subject: [PATCH 2/2] v2, seems to work... --- .../coffee/Features/Editor/EditorController.coffee | 9 ++++----- .../Features/Editor/EditorRealTimeController.coffee | 9 ++++----- .../Features/Editor/EditorUpdatesController.coffee | 4 ++-- services/web/app/coffee/infrastructure/Server.coffee | 11 ++++++++--- 4 files changed, 18 insertions(+), 15 deletions(-) diff --git a/services/web/app/coffee/Features/Editor/EditorController.coffee b/services/web/app/coffee/Features/Editor/EditorController.coffee index bff4ddec1c..21179a0deb 100644 --- a/services/web/app/coffee/Features/Editor/EditorController.coffee +++ b/services/web/app/coffee/Features/Editor/EditorController.coffee @@ -13,15 +13,14 @@ LimitationsManager = require("../Subscription/LimitationsManager") AuthorizationManager = require("../Security/AuthorizationManager") EditorRealTimeController = require("./EditorRealTimeController") TrackChangesManager = require("../TrackChanges/TrackChangesManager") -settings = require('settings-sharelatex') +Settings = require('settings-sharelatex') slReqIdHelper = require('soa-req-id') async = require('async') ConnectedUsersManager = require("../ConnectedUsers/ConnectedUsersManager") _ = require('underscore') -rclientPub = require("redis").createClient(settings.redis.web.port, settings.redis.web.host) -rclientPub.auth(settings.redis.web.password) -rclientSub = require("redis").createClient(settings.redis.web.port, settings.redis.web.host) -rclientSub.auth(settings.redis.web.password) +redis = require("redis-sharelatex") +rclientPub = redis.createClient(Settings.redis.web) +rclientSub = redis.createClient(Settings.redis.web) module.exports = EditorController = protocolVersion: 2 diff --git a/services/web/app/coffee/Features/Editor/EditorRealTimeController.coffee b/services/web/app/coffee/Features/Editor/EditorRealTimeController.coffee index 5b1b452c93..76f4f909c1 100644 --- a/services/web/app/coffee/Features/Editor/EditorRealTimeController.coffee +++ b/services/web/app/coffee/Features/Editor/EditorRealTimeController.coffee @@ -1,8 +1,7 @@ -settings = require 'settings-sharelatex' -rclientPub = require("redis").createClient(settings.redis.web.port, settings.redis.web.host) -rclientPub.auth(settings.redis.web.password) -rclientSub = require("redis").createClient(settings.redis.web.port, settings.redis.web.host) -rclientSub.auth(settings.redis.web.password) +Settings = require 'settings-sharelatex' +redis = require("redis-sharelatex") +rclientPub = redis.createClient(Settings.redis.web) +rclientSub = redis.createClient(Settings.redis.web) module.exports = EditorRealTimeController = rclientPub: rclientPub diff --git a/services/web/app/coffee/Features/Editor/EditorUpdatesController.coffee b/services/web/app/coffee/Features/Editor/EditorUpdatesController.coffee index 4385123541..bf73666b27 100644 --- a/services/web/app/coffee/Features/Editor/EditorUpdatesController.coffee +++ b/services/web/app/coffee/Features/Editor/EditorUpdatesController.coffee @@ -1,8 +1,8 @@ logger = require "logger-sharelatex" metrics = require('../../infrastructure/Metrics') Settings = require 'settings-sharelatex' -rclient = require("redis").createClient(Settings.redis.web.port, Settings.redis.web.host) -rclient.auth(Settings.redis.web.password) +redis = require("redis-sharelatex") +rclient = redis.createClient(Settings.redis.web) DocumentUpdaterHandler = require('../DocumentUpdater/DocumentUpdaterHandler') EditorRealTimeController = require("./EditorRealTimeController") diff --git a/services/web/app/coffee/infrastructure/Server.coffee b/services/web/app/coffee/infrastructure/Server.coffee index f8845ea84a..79a7cb443e 100644 --- a/services/web/app/coffee/infrastructure/Server.coffee +++ b/services/web/app/coffee/infrastructure/Server.coffee @@ -9,10 +9,15 @@ socketIoConfig = require('./SocketIoConfig') soareqid = require('soa-req-id') Router = require('../router') metrics.inc("startup") -redis = require('redis') -RedisStore = require('connect-redis')(express) SessionSockets = require('session.socket.io') -sessionStore = new RedisStore(host:Settings.redis.web.host, port:Settings.redis.web.port, pass:Settings.redis.web.password) + + +redis = require("redis-sharelatex") +rclient = redis.createClient(Settings.redis.web) + +RedisStore = require('connect-redis')(express) +sessionStore = new RedisStore(client:rclient) + cookieParser = express.cookieParser(Settings.security.sessionSecret) oneDayInMilliseconds = 86400000 ReferalConnect = require('../Features/Referal/ReferalConnect')