Move req.profiler call to req2params itself
This commit is contained in:
@@ -55,8 +55,6 @@ LayergroupController.prototype.attributes = function(req, res) {
|
||||
self.app.req2params(req, this);
|
||||
},
|
||||
function retrieveFeatureAttributes(err) {
|
||||
req.profiler.done('req2params');
|
||||
|
||||
assert.ifError(err);
|
||||
|
||||
var mapConfigProvider = new MapStoreMapConfigProvider(
|
||||
@@ -103,10 +101,7 @@ LayergroupController.prototype.tileOrLayer = function (req, res) {
|
||||
self.app.req2params(req, this);
|
||||
},
|
||||
function mapController$getTileOrGrid(err) {
|
||||
req.profiler.done('req2params');
|
||||
if ( err ) {
|
||||
throw err;
|
||||
}
|
||||
assert.ifError(err);
|
||||
self.tileBackend.getTile(
|
||||
new MapStoreMapConfigProvider(self.mapStore, req.context.user, self.userLimitsApi, req.params),
|
||||
req.params, this
|
||||
@@ -192,7 +187,6 @@ LayergroupController.prototype.staticMap = function(req, res, width, height, zoo
|
||||
self.app.req2params(req, this);
|
||||
},
|
||||
function(err) {
|
||||
req.profiler.done('req2params');
|
||||
assert.ifError(err);
|
||||
if (center) {
|
||||
self.previewBackend.getImage(
|
||||
|
||||
@@ -348,6 +348,7 @@ module.exports = function(serverOptions) {
|
||||
_.extend(req.query, JSON.parse(result));
|
||||
app.req2params(req, callback);
|
||||
} catch (err) {
|
||||
req.profiler.done('req2params');
|
||||
callback(new Error('Error parsing lzma as JSON: ' + err));
|
||||
}
|
||||
}
|
||||
@@ -380,6 +381,7 @@ module.exports = function(serverOptions) {
|
||||
'Cannot use map signature of user "' + req.params.signer + '" on db of user "' + user + '"'
|
||||
);
|
||||
err.http_status = 403;
|
||||
req.profiler.done('req2params');
|
||||
callback(err);
|
||||
return;
|
||||
}
|
||||
@@ -420,6 +422,7 @@ module.exports = function(serverOptions) {
|
||||
},
|
||||
function finishSetup(err) {
|
||||
if ( err ) {
|
||||
req.profiler.done('req2params');
|
||||
return callback(err, req);
|
||||
}
|
||||
|
||||
@@ -432,6 +435,7 @@ module.exports = function(serverOptions) {
|
||||
dbport: global.environment.postgres.port
|
||||
});
|
||||
|
||||
req.profiler.done('req2params');
|
||||
callback(null, req);
|
||||
}
|
||||
);
|
||||
|
||||
@@ -18,14 +18,17 @@ suite('req2params', function() {
|
||||
assert.ok(_.isFunction(server.req2params));
|
||||
});
|
||||
|
||||
function addContext(req) {
|
||||
function prepareRequest(req) {
|
||||
req.profiler = {
|
||||
done: function() {}
|
||||
};
|
||||
req.context = { user: 'localhost' };
|
||||
return req;
|
||||
}
|
||||
|
||||
test('cleans up request', function(done){
|
||||
var req = {headers: { host:'localhost' }, query: {dbuser:'hacker',dbname:'secret'}};
|
||||
server.req2params(addContext(req), function(err, req) {
|
||||
server.req2params(prepareRequest(req), function(err, req) {
|
||||
if ( err ) { done(err); return; }
|
||||
assert.ok(_.isObject(req.query), 'request has query');
|
||||
assert.ok(!req.query.hasOwnProperty('dbuser'), 'dbuser was removed from query');
|
||||
@@ -39,7 +42,7 @@ suite('req2params', function() {
|
||||
|
||||
test('sets dbname from redis metadata', function(done){
|
||||
var req = {headers: { host:'localhost' }, query: {} };
|
||||
server.req2params(addContext(req), function(err, req) {
|
||||
server.req2params(prepareRequest(req), function(err, req) {
|
||||
if ( err ) { done(err); return; }
|
||||
//console.dir(req);
|
||||
assert.ok(_.isObject(req.query), 'request has query');
|
||||
@@ -54,7 +57,7 @@ suite('req2params', function() {
|
||||
|
||||
test('sets also dbuser for authenticated requests', function(done){
|
||||
var req = {headers: { host:'localhost' }, query: {map_key: '1234'} };
|
||||
server.req2params(addContext(req), function(err, req) {
|
||||
server.req2params(prepareRequest(req), function(err, req) {
|
||||
if ( err ) { done(err); return; }
|
||||
//console.dir(req);
|
||||
assert.ok(_.isObject(req.query), 'request has query');
|
||||
@@ -63,8 +66,16 @@ suite('req2params', function() {
|
||||
assert.ok(!req.params.hasOwnProperty('interactivity'), 'request params do not have interactivity');
|
||||
assert.equal(req.params.dbname, test_database);
|
||||
assert.equal(req.params.dbuser, test_user);
|
||||
|
||||
server.req2params(addContext({headers: { host:'localhost' }, query: {map_key: '1235'} }), function(err, req) {
|
||||
|
||||
req = {
|
||||
headers: {
|
||||
host:'localhost'
|
||||
},
|
||||
query: {
|
||||
map_key: '1235'
|
||||
}
|
||||
};
|
||||
server.req2params(prepareRequest(req), function(err, req) {
|
||||
// wrong key resets params to no user
|
||||
assert.ok(req.params.dbuser === test_pubuser, 'could inject dbuser ('+req.params.dbuser+')');
|
||||
done();
|
||||
@@ -90,7 +101,7 @@ suite('req2params', function() {
|
||||
lzma: data
|
||||
}
|
||||
};
|
||||
server.req2params(addContext(req), function(err, req) {
|
||||
server.req2params(prepareRequest(req), function(err, req) {
|
||||
if ( err ) {
|
||||
return done(err);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user