Moved webaccess
parent
26d9c3ed53
commit
fe7bed6501
|
@ -90,8 +90,7 @@ async.waterfall([
|
||||||
{
|
{
|
||||||
//create server
|
//create server
|
||||||
var app = express.createServer();
|
var app = express.createServer();
|
||||||
|
hooks.callAll("expressCreateServer", {"app": app});
|
||||||
hooks.callAll("expressServer", {"app": app});
|
|
||||||
|
|
||||||
app.use(function (req, res, next) {
|
app.use(function (req, res, next) {
|
||||||
res.header("Server", serverName);
|
res.header("Server", serverName);
|
||||||
|
@ -111,17 +110,7 @@ async.waterfall([
|
||||||
|
|
||||||
//install logging
|
//install logging
|
||||||
var httpLogger = log4js.getLogger("http");
|
var httpLogger = log4js.getLogger("http");
|
||||||
app.configure(function()
|
app.configure(function() { hooks.callAll("expressConfigure", {"app": app}); });
|
||||||
{
|
|
||||||
// Activate http basic auth if it has been defined in settings.json
|
|
||||||
if(settings.httpAuth != null) app.use(basic_auth);
|
|
||||||
|
|
||||||
// If the log level specified in the config file is WARN or ERROR the application server never starts listening to requests as reported in issue #158.
|
|
||||||
// Not installing the log4js connect logger when the log level has a higher severity than INFO since it would not log at that level anyway.
|
|
||||||
if (!(settings.loglevel === "WARN" || settings.loglevel == "ERROR"))
|
|
||||||
app.use(log4js.connectLogger(httpLogger, { level: log4js.levels.INFO, format: ':status, :method :url'}));
|
|
||||||
app.use(express.cookieParser());
|
|
||||||
});
|
|
||||||
|
|
||||||
app.error(function(err, req, res, next){
|
app.error(function(err, req, res, next){
|
||||||
res.send(500);
|
res.send(500);
|
||||||
|
@ -129,26 +118,6 @@ async.waterfall([
|
||||||
gracefulShutdown();
|
gracefulShutdown();
|
||||||
});
|
});
|
||||||
|
|
||||||
//checks for basic http auth
|
|
||||||
function basic_auth (req, res, next) {
|
|
||||||
if (req.headers.authorization && req.headers.authorization.search('Basic ') === 0) {
|
|
||||||
// fetch login and password
|
|
||||||
if (new Buffer(req.headers.authorization.split(' ')[1], 'base64').toString() == settings.httpAuth) {
|
|
||||||
next();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
res.header('WWW-Authenticate', 'Basic realm="Protected Area"');
|
|
||||||
if (req.headers.authorization) {
|
|
||||||
setTimeout(function () {
|
|
||||||
res.send('Authentication required', 401);
|
|
||||||
}, 1000);
|
|
||||||
} else {
|
|
||||||
res.send('Authentication required', 401);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//serve timeslider.html under /p/$padname/timeslider
|
//serve timeslider.html under /p/$padname/timeslider
|
||||||
app.get('/p/:pad/:rev?/export/:type', function(req, res, next)
|
app.get('/p/:pad/:rev?/export/:type', function(req, res, next)
|
||||||
{
|
{
|
||||||
|
|
|
@ -0,0 +1,36 @@
|
||||||
|
var settings = require('./utils/Settings');
|
||||||
|
var express = require('express');
|
||||||
|
var log4js = require('log4js');
|
||||||
|
var httpLogger = log4js.getLogger("http");
|
||||||
|
|
||||||
|
|
||||||
|
//checks for basic http auth
|
||||||
|
exports.basicAuth = function (req, res, next) {
|
||||||
|
if (req.headers.authorization && req.headers.authorization.search('Basic ') === 0) {
|
||||||
|
// fetch login and password
|
||||||
|
if (new Buffer(req.headers.authorization.split(' ')[1], 'base64').toString() == settings.httpAuth) {
|
||||||
|
next();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
res.header('WWW-Authenticate', 'Basic realm="Protected Area"');
|
||||||
|
if (req.headers.authorization) {
|
||||||
|
setTimeout(function () {
|
||||||
|
res.send('Authentication required', 401);
|
||||||
|
}, 1000);
|
||||||
|
} else {
|
||||||
|
res.send('Authentication required', 401);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
exports.expressConfigure = function (hook_name, args, cb) {
|
||||||
|
// Activate http basic auth if it has been defined in settings.json
|
||||||
|
if(settings.httpAuth != null) args.app.use(exports.basicAuth);
|
||||||
|
|
||||||
|
// If the log level specified in the config file is WARN or ERROR the application server never starts listening to requests as reported in issue #158.
|
||||||
|
// Not installing the log4js connect logger when the log level has a higher severity than INFO since it would not log at that level anyway.
|
||||||
|
if (!(settings.loglevel === "WARN" || settings.loglevel == "ERROR"))
|
||||||
|
args.app.use(log4js.connectLogger(httpLogger, { level: log4js.levels.INFO, format: ':status, :method :url'}));
|
||||||
|
args.app.use(express.cookieParser());
|
||||||
|
}
|
|
@ -1,9 +1,11 @@
|
||||||
{
|
{
|
||||||
"parts": [
|
"parts": [
|
||||||
{ "name": "static", "hooks": { "expressServer": "../static:expressServer" } },
|
{ "name": "static", "hooks": { "expressCreateServer": "../static:expressServer" } },
|
||||||
{ "name": "specialpages", "hooks": { "expressServer": "../specialpages:expressServer" } },
|
{ "name": "specialpages", "hooks": { "expressCreateServer": "../specialpages:expressServer" } },
|
||||||
{ "name": "padurlsanitize", "hooks": { "expressServer": "../padurlsanitize:expressServer" } },
|
{ "name": "padurlsanitize", "hooks": { "expressCreateServer": "../padurlsanitize:expressServer" } },
|
||||||
{ "name": "minified", "hooks": { "expressServer": "../minified:expressServer" } },
|
{ "name": "minified", "hooks": { "expressCreateServer": "../minified:expressServer" } },
|
||||||
{ "name": "padreadonly", "hooks": { "expressServer": "../padreadonly:expressServer" } }
|
{ "name": "padreadonly", "hooks": { "expressCreateServer": "../padreadonly:expressServer" } },
|
||||||
|
{ "name": "webaccess", "hooks": { "expressConfigure": "../webaccess:expressConfigure" } }
|
||||||
|
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue