...
|
...
|
@@ -8,6 +8,7 @@ const _ = require('lodash'); |
|
|
const cache = global.yoho.cache.master;
|
|
|
const helpers = global.yoho.helpers;
|
|
|
const pathToRegexp = require('path-to-regexp');
|
|
|
const logger = global.yoho.logger;
|
|
|
|
|
|
const statusCode = {
|
|
|
code: 4403,
|
...
|
...
|
@@ -53,6 +54,7 @@ module.exports = () => { |
|
|
let risks = _.get(req.app.locals.wap, 'json.risk', []);
|
|
|
let router = {};
|
|
|
|
|
|
logger.debug(`risk => risks: ${JSON.stringify(risks)}, path: ${path}, ip: ${ip}`); // eslint-disable-line
|
|
|
if (_.isEmpty(path) || _.isEmpty(risks) || IP_WHITE_LIST.indexOf(ip) > -1) {
|
|
|
return next();
|
|
|
}
|
...
|
...
|
@@ -76,6 +78,7 @@ module.exports = () => { |
|
|
return false;
|
|
|
});
|
|
|
|
|
|
logger.debug(`risk => router: ${JSON.stringify(router)}, path: ${path}`); // eslint-disable-line
|
|
|
if (_.isEmpty(router)) {
|
|
|
return next();
|
|
|
}
|
...
|
...
|
@@ -91,6 +94,7 @@ module.exports = () => { |
|
|
cache.getAsync(limitKey),
|
|
|
cache.getAsync(configKey),
|
|
|
]).then(inters => {
|
|
|
logger.debug(`risk => getCache: ${JSON.stringify(inters)}, path: ${path}`); // eslint-disable-line
|
|
|
if (inters[0]) {
|
|
|
return Object.assign({}, statusCode, {data: {url: checkUrl}});
|
|
|
}
|
...
|
...
|
@@ -114,6 +118,7 @@ module.exports = () => { |
|
|
return Object.assign({}, statusCode, {data: {url: checkUrl}});
|
|
|
});
|
|
|
}).then(result => {
|
|
|
logger.debug(`risk => result: ${JSON.stringify(result)}, path: ${path}`); // eslint-disable-line
|
|
|
return _jumpUrl(req, res, next, result);
|
|
|
}).catch(e => {
|
|
|
console.log(`risk => path: ${path}, err: ${e.message}`);
|
...
|
...
|
|