;(function () {
'use strict'
- var ursa = require('ursa')
- var fs = require('fs')
-
- var logger = require('../src/logger')
- var utils = require('../src/utils')
- var PodsDB = require('../src/database').PodsDB
-
- var middleware = {}
-
- middleware.cache = function (cache) {
- return function (req, res, next) {
- // If we want explicitly a cache
- // Or if we don't specify if we want a cache or no and we are in production
- if (cache === true || (cache !== false && process.env.NODE_ENV === 'production')) {
- res.setHeader('Cache-Control', 'public')
- } else {
- res.setHeader('Cache-Control', 'no-cache, no-store, max-age=0, must-revalidate')
- }
-
- next()
- }
- }
-
- middleware.decryptBody = function (req, res, next) {
- logger.debug('Decrypting body.')
-
- PodsDB.findOne({ url: req.body.signature.url }, function (err, pod) {
- if (err) {
- logger.error('Cannot get signed url in decryptBody.', { error: err })
- res.sendStatus(500)
- }
-
- logger.debug('Found one pod which could send the message.', { pod: pod.publicKey, url: req.body.signature.url })
-
- var crt = ursa.createPublicKey(pod.publicKey)
- var signature_ok = crt.hashAndVerify('sha256', new Buffer(req.body.signature.url).toString('hex'), req.body.signature.signature, 'hex')
-
- if (signature_ok === true) {
- var myKey = ursa.createPrivateKey(fs.readFileSync(utils.certDir + 'peertube.key.pem'))
- var decryptedKey = myKey.decrypt(req.body.key, 'hex', 'utf8')
- logger.debug(decryptedKey)
- req.body.data = JSON.parse(utils.symetricDecrypt(req.body.data, decryptedKey))
- logger.debug('Decrypted.', { body: req.body })
- } else {
- logger.error('Signature is not okay in decryptBody for %s.', req.body.signature.url)
- res.sendStatus(500)
- }
-
- next()
- })
+ var middleware = {
+ reqValidators: require('./reqValidators'),
+ misc: require('./misc')
}
module.exports = middleware
--- /dev/null
+;(function () {
+ 'use strict'
+
+ var ursa = require('ursa')
+ var fs = require('fs')
+
+ var logger = require('../src/logger')
+ var utils = require('../src/utils')
+ var PodsDB = require('../src/database').PodsDB
+
+ var misc = {}
+
+ misc.cache = function (cache) {
+ return function (req, res, next) {
+ // If we want explicitly a cache
+ // Or if we don't specify if we want a cache or no and we are in production
+ if (cache === true || (cache !== false && process.env.NODE_ENV === 'production')) {
+ res.setHeader('Cache-Control', 'public')
+ } else {
+ res.setHeader('Cache-Control', 'no-cache, no-store, max-age=0, must-revalidate')
+ }
+
+ next()
+ }
+ }
+
+ misc.decryptBody = function (req, res, next) {
+ logger.debug('Decrypting body.')
+
+ PodsDB.findOne({ url: req.body.signature.url }, function (err, pod) {
+ if (err) {
+ logger.error('Cannot get signed url in decryptBody.', { error: err })
+ res.sendStatus(500)
+ }
+
+ logger.debug('Found one pod which could send the message.', { pod: pod.publicKey, url: req.body.signature.url })
+
+ var crt = ursa.createPublicKey(pod.publicKey)
+ var signature_ok = crt.hashAndVerify('sha256', new Buffer(req.body.signature.url).toString('hex'), req.body.signature.signature, 'hex')
+
+ if (signature_ok === true) {
+ var myKey = ursa.createPrivateKey(fs.readFileSync(utils.certDir + 'peertube.key.pem'))
+ var decryptedKey = myKey.decrypt(req.body.key, 'hex', 'utf8')
+ logger.debug(decryptedKey)
+ req.body.data = JSON.parse(utils.symetricDecrypt(req.body.data, decryptedKey))
+ logger.debug('Decrypted.', { body: req.body })
+ } else {
+ logger.error('Signature is not okay in decryptBody for %s.', req.body.signature.url)
+ res.sendStatus(500)
+ }
+
+ next()
+ })
+ }
+
+ module.exports = misc
+})()
var express = require('express')
var router = express.Router()
var middleware = require('../../../middlewares')
- var reqValidator = require('../../../middlewares/reqValidators').pods
+ var miscMiddleware = middleware.misc
+ var reqValidator = middleware.reqValidators.pods
var pods = require('../../../src/pods')
function listPods (req, res, next) {
})
}
- router.get('/', middleware.cache(false), listPods)
- router.get('/makefriends', middleware.cache(false), makeFriends)
- router.post('/', reqValidator.podsAdd, middleware.cache(false), addPods)
+ router.get('/', miscMiddleware.cache(false), listPods)
+ router.get('/makefriends', miscMiddleware.cache(false), makeFriends)
+ router.post('/', reqValidator.podsAdd, miscMiddleware.cache(false), addPods)
module.exports = router
})()
var express = require('express')
var router = express.Router()
var middleware = require('../../../middlewares')
- var requestValidator = require('../../../middlewares/reqValidators').remote
+ var miscMiddleware = middleware.misc
+ var reqValidator = middleware.reqValidators.remote
var videos = require('../../../src/videos')
function addRemoteVideos (req, res, next) {
})
}
- router.post('/add', requestValidator.secureRequest, middleware.decryptBody, requestValidator.remoteVideosAdd, middleware.cache(false), addRemoteVideos)
- router.post('/remove', requestValidator.secureRequest, middleware.decryptBody, requestValidator.remoteVideosRemove, middleware.cache(false), removeRemoteVideo)
+ router.post('/add', reqValidator.secureRequest, miscMiddleware.decryptBody, reqValidator.remoteVideosAdd, miscMiddleware.cache(false), addRemoteVideos)
+ router.post('/remove', reqValidator.secureRequest, miscMiddleware.decryptBody, reqValidator.remoteVideosRemove, miscMiddleware.cache(false), removeRemoteVideo)
module.exports = router
})()
var express = require('express')
var router = express.Router()
var middleware = require('../../../middlewares')
- var reqValidator = require('../../../middlewares/reqValidators').videos
+ var miscMiddleware = middleware.misc
+ var reqValidator = middleware.reqValidators.videos
var videos = require('../../../src/videos')
function listVideos (req, res, next) {
})
}
- router.get('/', middleware.cache(false), listVideos)
- router.post('/', reqValidator.videosAdd, middleware.cache(false), addVideos)
- router.get('/search/:name', reqValidator.videosSearch, middleware.cache(false), searchVideos)
- router.get('/:id', reqValidator.videosGet, middleware.cache(false), getVideos)
- router.delete('/:id', reqValidator.videosRemove, middleware.cache(false), removeVideo)
+ router.get('/', miscMiddleware.cache(false), listVideos)
+ router.post('/', reqValidator.videosAdd, miscMiddleware.cache(false), addVideos)
+ router.get('/search/:name', reqValidator.videosSearch, miscMiddleware.cache(false), searchVideos)
+ router.get('/:id', reqValidator.videosGet, miscMiddleware.cache(false), getVideos)
+ router.delete('/:id', reqValidator.videosRemove, miscMiddleware.cache(false), removeVideo)
module.exports = router
})()
}
var express = require('express')
- var middleware = require('../middlewares')
+ var middleware = require('../middlewares').misc
var router = express.Router()