From 4bb35f5fabccfcbf4935533008824627c09531e1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Garc=C3=ADa=20Aubert?= Date: Mon, 26 Mar 2018 15:37:44 +0200 Subject: [PATCH] Extract cors and user middlewares and set them up at application level --- lib/cartodb/controllers/analyses.js | 4 ---- lib/cartodb/controllers/layergroup/analysis.js | 4 ---- lib/cartodb/controllers/layergroup/attributes.js | 4 ---- lib/cartodb/controllers/layergroup/dataview.js | 10 ---------- lib/cartodb/controllers/layergroup/static.js | 6 ------ lib/cartodb/controllers/layergroup/tile.js | 8 -------- lib/cartodb/controllers/map.js | 3 --- lib/cartodb/controllers/named_maps.js | 6 ------ lib/cartodb/controllers/named_maps_admin.js | 11 ----------- lib/cartodb/server.js | 5 +++++ 10 files changed, 5 insertions(+), 56 deletions(-) diff --git a/lib/cartodb/controllers/analyses.js b/lib/cartodb/controllers/analyses.js index 2d89a091..d08d2779 100644 --- a/lib/cartodb/controllers/analyses.js +++ b/lib/cartodb/controllers/analyses.js @@ -1,6 +1,4 @@ const PSQL = require('cartodb-psql'); -const cors = require('../middleware/cors'); -const user = require('../middleware/user'); const cleanUpQueryParams = require('../middleware/clean-up-query-params'); const credentials = require('../middleware/credentials'); const authorize = require('../middleware/authorize'); @@ -24,8 +22,6 @@ AnalysesController.prototype.register = function (app) { app.get( `${mapconfigBasePath}/analyses/catalog`, - cors(), - user(), credentials(), authorize(this.authApi), dbConnSetup(this.pgConnection), diff --git a/lib/cartodb/controllers/layergroup/analysis.js b/lib/cartodb/controllers/layergroup/analysis.js index 3022bce3..b5faedb1 100644 --- a/lib/cartodb/controllers/layergroup/analysis.js +++ b/lib/cartodb/controllers/layergroup/analysis.js @@ -1,5 +1,3 @@ -const cors = require('../../middleware/cors'); -const user = require('../../middleware/user'); const layergroupToken = require('../../middleware/layergroup-token'); const cleanUpQueryParams = require('../../middleware/clean-up-query-params'); const credentials = require('../../middleware/credentials'); @@ -34,8 +32,6 @@ module.exports = class AnalysisController { app.get( `${mapConfigBasePath}/:token/analysis/node/:nodeId`, - cors(), - user(), layergroupToken(), credentials(), authorize(this.authApi), diff --git a/lib/cartodb/controllers/layergroup/attributes.js b/lib/cartodb/controllers/layergroup/attributes.js index 07ae5da1..24c016ad 100644 --- a/lib/cartodb/controllers/layergroup/attributes.js +++ b/lib/cartodb/controllers/layergroup/attributes.js @@ -1,5 +1,3 @@ -const cors = require('../../middleware/cors'); -const user = require('../../middleware/user'); const layergroupToken = require('../../middleware/layergroup-token'); const cleanUpQueryParams = require('../../middleware/clean-up-query-params'); const credentials = require('../../middleware/credentials'); @@ -38,8 +36,6 @@ module.exports = class AttribitesController { app.get( `${mapConfigBasePath}/:token/:layer/attributes/:fid`, - cors(), - user(), layergroupToken(), credentials(), authorize(this.authApi), diff --git a/lib/cartodb/controllers/layergroup/dataview.js b/lib/cartodb/controllers/layergroup/dataview.js index bca27f1e..3864ce37 100644 --- a/lib/cartodb/controllers/layergroup/dataview.js +++ b/lib/cartodb/controllers/layergroup/dataview.js @@ -1,5 +1,3 @@ -const cors = require('../../middleware/cors'); -const user = require('../../middleware/user'); const layergroupToken = require('../../middleware/layergroup-token'); const cleanUpQueryParams = require('../../middleware/clean-up-query-params'); const credentials = require('../../middleware/credentials'); @@ -56,8 +54,6 @@ module.exports = class DataviewController { app.get( `${mapConfigBasePath}/:token/dataview/:dataviewName`, - cors(), - user(), layergroupToken(), credentials(), authorize(this.authApi), @@ -80,8 +76,6 @@ module.exports = class DataviewController { app.get( `${mapConfigBasePath}/:token/:layer/widget/:dataviewName`, - cors(), - user(), layergroupToken(), credentials(), authorize(this.authApi), @@ -104,8 +98,6 @@ module.exports = class DataviewController { app.get( `${mapConfigBasePath}/:token/dataview/:dataviewName/search`, - cors(), - user(), layergroupToken(), credentials(), authorize(this.authApi), @@ -128,8 +120,6 @@ module.exports = class DataviewController { app.get( `${mapConfigBasePath}/:token/:layer/widget/:dataviewName/search`, - cors(), - user(), layergroupToken(), credentials(), authorize(this.authApi), diff --git a/lib/cartodb/controllers/layergroup/static.js b/lib/cartodb/controllers/layergroup/static.js index 00510780..56f9169d 100644 --- a/lib/cartodb/controllers/layergroup/static.js +++ b/lib/cartodb/controllers/layergroup/static.js @@ -1,5 +1,3 @@ -const cors = require('../../middleware/cors'); -const user = require('../../middleware/user'); const layergroupToken = require('../../middleware/layergroup-token'); const cleanUpQueryParams = require('../../middleware/clean-up-query-params'); const credentials = require('../../middleware/credentials'); @@ -40,8 +38,6 @@ module.exports = class StaticController { app.get( `${mapConfigBasePath}/static/center/:token/:z/:lat/:lng/:width/:height.:format`, - cors(), - user(), layergroupToken(), credentials(), authorize(this.authApi), @@ -65,8 +61,6 @@ module.exports = class StaticController { app.get( `${mapConfigBasePath}/static/bbox/:token/:west,:south,:east,:north/:width/:height.:format`, - cors(), - user(), layergroupToken(), credentials(), authorize(this.authApi), diff --git a/lib/cartodb/controllers/layergroup/tile.js b/lib/cartodb/controllers/layergroup/tile.js index 07727236..d0df6fef 100644 --- a/lib/cartodb/controllers/layergroup/tile.js +++ b/lib/cartodb/controllers/layergroup/tile.js @@ -1,5 +1,3 @@ -const cors = require('../../middleware/cors'); -const user = require('../../middleware/user'); const layergroupToken = require('../../middleware/layergroup-token'); const cleanUpQueryParams = require('../../middleware/clean-up-query-params'); const credentials = require('../../middleware/credentials'); @@ -48,8 +46,6 @@ module.exports = class TileController { app.get( `${mapConfigBasePath}/:token/:z/:x/:y@:scale_factor?x.:format`, - cors(), - user(), layergroupToken(), credentials(), authorize(this.authApi), @@ -76,8 +72,6 @@ module.exports = class TileController { app.get( `${mapConfigBasePath}/:token/:z/:x/:y.:format`, - cors(), - user(), layergroupToken(), credentials(), authorize(this.authApi), @@ -105,8 +99,6 @@ module.exports = class TileController { app.get( `${mapConfigBasePath}/:token/:layer/:z/:x/:y.(:format)`, distinguishLayergroupFromStaticRoute(), - cors(), - user(), layergroupToken(), credentials(), authorize(this.authApi), diff --git a/lib/cartodb/controllers/map.js b/lib/cartodb/controllers/map.js index 11074234..bbd9483b 100644 --- a/lib/cartodb/controllers/map.js +++ b/lib/cartodb/controllers/map.js @@ -4,7 +4,6 @@ const MapConfig = windshaft.model.MapConfig; const Datasource = windshaft.model.Datasource; const ResourceLocator = require('../models/resource-locator'); const cors = require('../middleware/cors'); -const user = require('../middleware/user'); const cleanUpQueryParams = require('../middleware/clean-up-query-params'); const credentials = require('../middleware/credentials'); const dbConnSetup = require('../middleware/db-conn-setup'); @@ -99,8 +98,6 @@ MapController.prototype.composeCreateMapMiddleware = function (endpointGroup, us const addContext = !useTemplate; return [ - cors(), - user(), credentials(), authorize(this.authApi), dbConnSetup(this.pgConnection), diff --git a/lib/cartodb/controllers/named_maps.js b/lib/cartodb/controllers/named_maps.js index 2cb4f609..044f98fa 100644 --- a/lib/cartodb/controllers/named_maps.js +++ b/lib/cartodb/controllers/named_maps.js @@ -1,5 +1,3 @@ -const cors = require('../middleware/cors'); -const user = require('../middleware/user'); const cleanUpQueryParams = require('../middleware/clean-up-query-params'); const credentials = require('../middleware/credentials'); const dbConnSetup = require('../middleware/db-conn-setup'); @@ -54,8 +52,6 @@ NamedMapsController.prototype.register = function(app) { app.get( `${templateBasePath}/:template_id/:layer/:z/:x/:y.(:format)`, - cors(), - user(), credentials(), authorize(this.authApi), dbConnSetup(this.pgConnection), @@ -80,8 +76,6 @@ NamedMapsController.prototype.register = function(app) { app.get( `${mapconfigBasePath}/static/named/:template_id/:width/:height.:format`, - cors(), - user(), credentials(), authorize(this.authApi), dbConnSetup(this.pgConnection), diff --git a/lib/cartodb/controllers/named_maps_admin.js b/lib/cartodb/controllers/named_maps_admin.js index afcaa1e3..5e3c40dc 100644 --- a/lib/cartodb/controllers/named_maps_admin.js +++ b/lib/cartodb/controllers/named_maps_admin.js @@ -1,6 +1,5 @@ const { templateName } = require('../backends/template_maps'); const cors = require('../middleware/cors'); -const user = require('../middleware/user'); const credentials = require('../middleware/credentials'); const rateLimit = require('../middleware/rate-limit'); const { RATE_LIMIT_ENDPOINTS_GROUPS } = rateLimit; @@ -25,8 +24,6 @@ NamedMapsAdminController.prototype.register = function (app) { app.post( `${templateBasePath}/`, - cors(), - user(), credentials(), checkContentType({ action: 'POST', label: 'POST TEMPLATE' }), authorizedByAPIKey({ authApi: this.authApi, action: 'create', label: 'POST TEMPLATE' }), @@ -37,8 +34,6 @@ NamedMapsAdminController.prototype.register = function (app) { app.put( `${templateBasePath}/:template_id`, - cors(), - user(), credentials(), checkContentType({ action: 'PUT', label: 'PUT TEMPLATE' }), authorizedByAPIKey({ authApi: this.authApi, action: 'update', label: 'PUT TEMPLATE' }), @@ -49,8 +44,6 @@ NamedMapsAdminController.prototype.register = function (app) { app.get( `${templateBasePath}/:template_id`, - cors(), - user(), credentials(), authorizedByAPIKey({ authApi: this.authApi, action: 'get', label: 'GET TEMPLATE' }), rateLimit(this.userLimitsApi, RATE_LIMIT_ENDPOINTS_GROUPS.NAMED_GET), @@ -60,8 +53,6 @@ NamedMapsAdminController.prototype.register = function (app) { app.delete( `${templateBasePath}/:template_id`, - cors(), - user(), credentials(), authorizedByAPIKey({ authApi: this.authApi, action: 'delete', label: 'DELETE TEMPLATE' }), rateLimit(this.userLimitsApi, RATE_LIMIT_ENDPOINTS_GROUPS.NAMED_DELETE), @@ -71,8 +62,6 @@ NamedMapsAdminController.prototype.register = function (app) { app.get( `${templateBasePath}/`, - cors(), - user(), credentials(), authorizedByAPIKey({ authApi: this.authApi, action: 'list', label: 'GET TEMPLATE LIST' }), rateLimit(this.userLimitsApi, RATE_LIMIT_ENDPOINTS_GROUPS.NAMED_LIST), diff --git a/lib/cartodb/server.js b/lib/cartodb/server.js index 8535783d..13fe1e06 100644 --- a/lib/cartodb/server.js +++ b/lib/cartodb/server.js @@ -1,4 +1,6 @@ var express = require('express'); +const cors = require('./middleware/cors'); +const user = require('./middleware/user'); var bodyParser = require('body-parser'); var RedisPool = require('redis-mpool'); var cartodbRedis = require('cartodb-redis'); @@ -392,6 +394,9 @@ function bootstrap(opts) { setupLogger(app, opts); + app.use(cors()); + app.use(user()); + return app; }