UNPKG

whistle

Version:

HTTP, HTTP2, HTTPS, Websocket debugging proxy

64 lines (61 loc) 2.63 kB
var proxy = require('../lib/proxy'); var util = require('./util'); var config = require('../../../lib/config'); var rulesUtil = require('../../../lib/rules/util'); var ca = require('../../../lib/https/ca'); var properties = rulesUtil.properties; var rules = rulesUtil.rules; var pluginMgr = proxy.pluginMgr; var logger = proxy.logger; module.exports = function(req, res) { var data = req.query; if (data.ids && typeof data.ids == 'string') { data.ids = data.ids.split(','); if (data.status && typeof data.status == 'string') { data.status = data.status.split(','); } else { data.status = null; } } else { data.ids = null; } var clientIp = util.getClientIp(req); var stopRecordSvrLog = data.startSvrLogTime == -3; var h = req.headers; var curSvrLogId = logger.getLatestId(); util.sendGzip(req, res, { ec: 0, wName: config.whistleName, disableInstaller: config.disableInstaller, account: config.account, version: config.version, installErrors: config.getInstallPluginErrors && config.getInstallPluginErrors(data.clientId), custom1: properties.get('Custom1'), custom2: properties.get('Custom2'), custom1Key: properties.get('Custom1Key'), custom2Key: properties.get('Custom2Key'), supportH2: config.enableH2, hasInvalidCerts: ca.hasInvalidCerts, clientIp: clientIp, mrulesClientId: config.mrulesClientId, mrulesTime: config.mrulesTime, mvaluesClientId: config.mvaluesClientId, mvaluesTime: config.mvaluesTime, server: util.getServerInfo(req), curSvrLogId: stopRecordSvrLog ? undefined : curSvrLogId, lastSvrLogId: stopRecordSvrLog ? curSvrLogId : undefined, svrLog: stopRecordSvrLog ? [] : logger.getLogs(data.startSvrLogTime, data.count), plugins: pluginMgr.getPlugins(), disabledPlugins: !config.notAllowedDisablePlugins && properties.get('disabledPlugins') || {}, allowMultipleChoice: properties.get('allowMultipleChoice'), backRulesFirst: properties.get('backRulesFirst'), enabledCount: rules.getEnabledRules().length, disabledAllPlugins: !config.notAllowedDisablePlugins && properties.get('disabledAllPlugins'), disabledAllRules: !config.notAllowedDisableRules && properties.get('disabledAllRules'), interceptHttpsConnects: properties.isEnableCapture(), enableHttp2: properties.isEnableHttp2(), defaultRulesIsDisabled: rules.defaultRulesIsDisabled(), list: rules.getSelectedList(), data: proxy.getData(data, clientIp, h['x-whistle-filter-key'], h['x-whistle-filter-value'], h['x-whistle-filter-client-id'], h[config.CLIENT_ID_HEADER]) }); };