From 6089187af55ecda330c34e2fae608a5e7b2c80de Mon Sep 17 00:00:00 2001 From: wuchangming Date: Sun, 1 Jan 2017 15:59:46 +0800 Subject: [PATCH] feat(externalProxy): ignore weixin mmtls --- lib/proxy/spyProxy.js | 16 ++++++++++++---- package.json | 2 +- src/proxy/spyProxy.js | 10 +++++++++- 3 files changed, 22 insertions(+), 6 deletions(-) diff --git a/lib/proxy/spyProxy.js b/lib/proxy/spyProxy.js index a9ee94f..6090d1e 100644 --- a/lib/proxy/spyProxy.js +++ b/lib/proxy/spyProxy.js @@ -28,7 +28,7 @@ module.exports = { weinrePort = _ref.weinrePort, _ref$autoDetectBrowse = _ref.autoDetectBrowser, autoDetectBrowser = _ref$autoDetectBrowse === undefined ? true : _ref$autoDetectBrowse, - externalProxy = _ref.externalProxy, + _externalProxy = _ref.externalProxy, successCB = _ref.successCB, cache = _ref.cache; @@ -36,7 +36,15 @@ module.exports = { var createMitmProxy = function createMitmProxy() { mitmProxy.createProxy({ - externalProxy: externalProxy, + externalProxy: function externalProxy(req, ssl) { + // ignore weixin mmtls + var headers = req.headers; + if (headers['upgrade'] && headers['upgrade'] === 'mmtls') { + return ''; + } else { + return _externalProxy; + } + }, port: port, getCertSocketTimeout: 3 * 1000, sslConnectInterceptor: function sslConnectInterceptor(req, cltSocket, head) { @@ -137,7 +145,7 @@ module.exports = { }); }; - if (!externalProxy) { + if (!_externalProxy) { d.run(function () { var ports = void 0; @@ -150,7 +158,7 @@ module.exports = { ports = externalProxyPorts; var externalProxyPort = externalProxyPorts.port; var externalProxyWebPort = externalProxyPorts.webPort; - externalProxy = 'http://localhost:' + externalProxyPort; + _externalProxy = 'http://localhost:' + externalProxyPort; createMitmProxy(); successCB(externalProxyPorts); }); diff --git a/package.json b/package.json index e2739a7..2d4bd4f 100644 --- a/package.json +++ b/package.json @@ -41,7 +41,7 @@ "ip": "^1.1.2", "jschardet": "^1.4.1", "lodash": "^4.6.1", - "node-mitmproxy": "3.0.9", + "node-mitmproxy": "3.1.0", "through2": "^2.0.1", "express": "2.5.x", "nopt": "3.0.x", diff --git a/src/proxy/spyProxy.js b/src/proxy/spyProxy.js index 31c7157..a58f4ec 100644 --- a/src/proxy/spyProxy.js +++ b/src/proxy/spyProxy.js @@ -33,7 +33,15 @@ module.exports = { var createMitmProxy = () => { mitmProxy.createProxy({ - externalProxy, + externalProxy: (req, ssl) => { + // ignore weixin mmtls + var headers = req.headers; + if (headers['upgrade'] && headers['upgrade'] === 'mmtls') { + return '' + } else { + return externalProxy + } + }, port, getCertSocketTimeout: 3 * 1000, sslConnectInterceptor: (req, cltSocket, head) => {