Просмотр исходного кода

Add dropbox webhook signature verification and decaf cleanup (#6352)

* Decaf: move functions to top level, removing unused vars

* Decaf: fix camelcase identifiers

* Decaf: remove unnecessary code created because of implicit returns

* Decaf: remove next() fallback callbacks

* Decaf: shorten null checks, remove decaf/eslint comments

* Add signature verification for Dropbox webhook

* Add overleaf dropbox app secret to web (staging+prod)

* Add simple acceptance test for dropbox webhook events processing

* Add method for modules to register app middleware prior to bodyParser call, move rawBody middleware to Dropbox module

GitOrigin-RevId: 736f489e2eb5906f7b202c1049c4ce143deea74e
Thomas 4 лет назад
Родитель
Сommit
7a445eb489

+ 9 - 0
services/web/app/src/infrastructure/Modules.js

@@ -81,6 +81,14 @@ function loadViewIncludes(app) {
   }
 }
 
+function registerAppMiddleware(app) {
+  for (const module of _modules) {
+    if (module.appMiddleware) {
+      module.appMiddleware(app)
+    }
+  }
+}
+
 function moduleIncludes(view, locals) {
   const compiledPartials = _viewIncludes[view] || []
   let html = ''
@@ -144,6 +152,7 @@ module.exports = {
   loadViewIncludes,
   moduleIncludes,
   moduleIncludesAvailable,
+  registerAppMiddleware,
   hooks: {
     attach: attachHook,
     fire: fireHook,

+ 1 - 0
services/web/app/src/infrastructure/Server.js

@@ -132,6 +132,7 @@ app.set('views', Path.join(__dirname, '/../../views'))
 app.set('view engine', 'pug')
 Modules.loadViewIncludes(app)
 
+Modules.registerAppMiddleware(app)
 app.use(bodyParser.urlencoded({ extended: true, limit: '2mb' }))
 app.use(bodyParser.json({ limit: Settings.max_json_request_size }))
 app.use(methodOverride())