summaryrefslogtreecommitdiff
path: root/src/node/hooks
diff options
context:
space:
mode:
authorTom Hunkapiller <tom@furycodes.com>2015-04-07 07:55:05 -0500
committerTom Hunkapiller <tom@furycodes.com>2015-04-08 23:12:11 -0500
commitd0b39c01fbc06b6f5d92613e4b35732f7f9d90c7 (patch)
treeb0680c93d7df3a9f9fe3f16f39a35e709774f177 /src/node/hooks
parent7b86eb09bc2235dd2683fb72601934dbcea3a9eb (diff)
downloadetherpad-lite-d0b39c01fbc06b6f5d92613e4b35732f7f9d90c7.zip
update for express 4.x
Diffstat (limited to 'src/node/hooks')
-rw-r--r--src/node/hooks/express.js6
-rw-r--r--src/node/hooks/express/socketio.js9
-rw-r--r--src/node/hooks/express/specialpages.js8
-rw-r--r--src/node/hooks/express/static.js7
-rw-r--r--src/node/hooks/express/webaccess.js6
5 files changed, 18 insertions, 18 deletions
diff --git a/src/node/hooks/express.js b/src/node/hooks/express.js
index 3275bd3f..692be589 100644
--- a/src/node/hooks/express.js
+++ b/src/node/hooks/express.js
@@ -67,10 +67,8 @@ exports.restartServer = function () {
if(settings.trustProxy){
app.enable('trust proxy');
}
-
- app.configure(function() {
- hooks.callAll("expressConfigure", {"app": app});
- });
+
+ hooks.callAll("expressConfigure", {"app": app});
hooks.callAll("expressCreateServer", {"app": app, "server": server});
server.listen(settings.port, settings.ip);
diff --git a/src/node/hooks/express/socketio.js b/src/node/hooks/express/socketio.js
index 35d6d074..23622f3a 100644
--- a/src/node/hooks/express/socketio.js
+++ b/src/node/hooks/express/socketio.js
@@ -6,7 +6,8 @@ var webaccess = require("ep_etherpad-lite/node/hooks/express/webaccess");
var padMessageHandler = require("../../handler/PadMessageHandler");
-var connect = require('connect');
+var cookieParser = require('cookie-parser');
+var sessionModule = require('express-session');
exports.expressCreateServer = function (hook_name, args, cb) {
//init socket.io and redirect all requests to the MessageHandler
@@ -20,6 +21,7 @@ exports.expressCreateServer = function (hook_name, args, cb) {
/* Require an express session cookie to be present, and load the
* session. See http://www.danielbaulig.de/socket-ioexpress for more
* info */
+ var cookieParserFn = cookieParser(webaccess.secret, {});
io.use(function(socket, accept) {
var data = socket.request;
@@ -29,8 +31,7 @@ exports.expressCreateServer = function (hook_name, args, cb) {
}else{
if (!data.headers.cookie) return accept('No session cookie transmitted.', false);
}
- // Use connect's cookie parser, because it knows how to parse signed cookies
- connect.cookieParser(webaccess.secret)(data, {}, function(err){
+ cookieParserFn(data, {}, function(err){
if(err) {
console.error(err);
accept("Couldn't parse request cookies. ", false);
@@ -40,7 +41,7 @@ exports.expressCreateServer = function (hook_name, args, cb) {
data.sessionID = data.signedCookies.express_sid;
args.app.sessionStore.get(data.sessionID, function (err, session) {
if (err || !session) return accept('Bad session / session has expired', false);
- data.session = new connect.middleware.session.Session(data, session);
+ data.session = new sessionModule.Session(data, session);
accept(null, true);
});
});
diff --git a/src/node/hooks/express/specialpages.js b/src/node/hooks/express/specialpages.js
index 063328fb..0370c4fc 100644
--- a/src/node/hooks/express/specialpages.js
+++ b/src/node/hooks/express/specialpages.js
@@ -19,13 +19,13 @@ exports.expressCreateServer = function (hook_name, args, cb) {
args.app.get('/robots.txt', function(req, res)
{
var filePath = path.normalize(__dirname + "/../../../static/custom/robots.txt");
- res.sendfile(filePath, function(err)
+ res.sendFile(filePath, function(err)
{
//there is no custom favicon, send the default robots.txt which dissallows all
if(err)
{
filePath = path.normalize(__dirname + "/../../../static/robots.txt");
- res.sendfile(filePath);
+ res.sendFile(filePath);
}
});
});
@@ -60,13 +60,13 @@ exports.expressCreateServer = function (hook_name, args, cb) {
args.app.get( /\/favicon.ico$/, function(req, res)
{
var filePath = path.normalize(__dirname + "/../../../static/custom/favicon.ico");
- res.sendfile(filePath, function(err)
+ res.sendFile(filePath, function(err)
{
//there is no custom favicon, send the default favicon
if(err)
{
filePath = path.normalize(__dirname + "/../../../static/favicon.ico");
- res.sendfile(filePath);
+ res.sendFile(filePath);
}
});
});
diff --git a/src/node/hooks/express/static.js b/src/node/hooks/express/static.js
index e5a2bff0..7ae20db2 100644
--- a/src/node/hooks/express/static.js
+++ b/src/node/hooks/express/static.js
@@ -9,11 +9,11 @@ exports.expressCreateServer = function (hook_name, args, cb) {
// Cache both minified and static.
var assetCache = new CachingMiddleware;
- args.app.all('/(javascripts|static)/*', assetCache.handle);
+ args.app.all(/\/(javascripts|static)\/(.*)/, assetCache.handle);
// Minify will serve static files compressed (minify enabled). It also has
// file-specific hacks for ace/require-kernel/etc.
- args.app.all('/static/:filename(*)', minify.minify);
+ args.app.all('/static/:filename', minify.minify);
// Setup middleware that will package JavaScript files served by minify for
// CommonJS loader on the client-side.
@@ -30,7 +30,8 @@ exports.expressCreateServer = function (hook_name, args, cb) {
Yajsml.associators.associationsForSimpleMapping(minify.tar);
var associator = new StaticAssociator(associations);
jsServer.setAssociator(associator);
- args.app.use(jsServer);
+
+ args.app.use(jsServer.handle.bind(jsServer));
// serve plugin definitions
// not very static, but served here so that client can do require("pluginfw/static/js/plugin-definitions.js");
diff --git a/src/node/hooks/express/webaccess.js b/src/node/hooks/express/webaccess.js
index b798f2c7..60b3e651 100644
--- a/src/node/hooks/express/webaccess.js
+++ b/src/node/hooks/express/webaccess.js
@@ -4,7 +4,8 @@ var httpLogger = log4js.getLogger("http");
var settings = require('../../utils/Settings');
var hooks = require('ep_etherpad-lite/static/js/pluginfw/hooks');
var ueberStore = require('../../db/SessionStore');
-var stats = require('ep_etherpad-lite/node/stats')
+var stats = require('ep_etherpad-lite/node/stats');
+var sessionModule = require('express-session');
//checks for basic http auth
exports.basicAuth = function (req, res, next) {
@@ -117,9 +118,8 @@ exports.expressConfigure = function (hook_name, args, cb) {
exports.secret = settings.sessionKey; // Isn't this being reset each time the server spawns?
}
- args.app.use(express.cookieParser(exports.secret));
args.app.sessionStore = exports.sessionStore;
- args.app.use(express.session({secret: exports.secret, store: args.app.sessionStore, key: 'express_sid' }));
+ args.app.use(sessionModule({secret: exports.secret, store: args.app.sessionStore, resave: true, saveUninitialized: true, name: 'express_sid' }));
args.app.use(exports.basicAuth);
}