feat: 新增 unVerifySsl 拦截器
parent
de70b083dd
commit
9e27eb4301
|
@ -122,11 +122,22 @@ module.exports = {
|
||||||
rOptions.agent = rOptions.agent.unVerifySslAgent
|
rOptions.agent = rOptions.agent.unVerifySslAgent
|
||||||
unVerifySsl = true
|
unVerifySsl = true
|
||||||
}
|
}
|
||||||
res.setHeader('DS-Interceptor', `proxy: ${proxyTarget}, sni: ${interceptOpt.sni}${unVerifySsl ? ', unVerifySsl' : ''}`)
|
|
||||||
log.info('proxy intercept: hostname:', originHostname, ', target:', proxyTarget, ', sni replace servername:', rOptions.servername, (unVerifySsl ? ', unVerifySsl' : ''))
|
const unVerifySslStr = unVerifySsl ? ', unVerifySsl' : ''
|
||||||
|
res.setHeader('DS-Interceptor', `proxy: ${proxyTarget}, sni: ${interceptOpt.sni}${unVerifySslStr}`)
|
||||||
|
log.info(`proxy intercept: hostname: ${originHostname}, target: ${proxyTarget}, sni replace servername: ${rOptions.servername}${unVerifySslStr}`)
|
||||||
|
} else if (interceptOpt.unVerifySsl === true) {
|
||||||
|
if (rOptions.agent.options.rejectUnauthorized && rOptions.agent.unVerifySslAgent) {
|
||||||
|
rOptions.agent = rOptions.agent.unVerifySslAgent
|
||||||
|
res.setHeader('DS-Interceptor', `proxy: ${proxyTarget}, unVerifySsl`)
|
||||||
|
log.info(`proxy intercept: hostname: ${originHostname}, target: ${proxyTarget}, unVerifySsl`)
|
||||||
|
} else {
|
||||||
|
res.setHeader('DS-Interceptor', `proxy: ${proxyTarget}, already unVerifySsl`)
|
||||||
|
log.info(`proxy intercept: hostname: ${originHostname}, target: ${proxyTarget}, already unVerifySsl`)
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
res.setHeader('DS-Interceptor', `proxy: ${proxyTarget}`)
|
res.setHeader('DS-Interceptor', `proxy: ${proxyTarget}`)
|
||||||
log.info('proxy intercept: hostname:', originHostname, ', target:', proxyTarget)
|
log.info(`proxy intercept: hostname: ${originHostname}, target:${proxyTarget}`)
|
||||||
}
|
}
|
||||||
|
|
||||||
return true
|
return true
|
||||||
|
|
|
@ -12,9 +12,11 @@ module.exports = {
|
||||||
rOptions.agent = rOptions.agent.unVerifySslAgent
|
rOptions.agent = rOptions.agent.unVerifySslAgent
|
||||||
unVerifySsl = true
|
unVerifySsl = true
|
||||||
}
|
}
|
||||||
res.setHeader('DS-Interceptor', `sni: ${interceptOpt.sni}${unVerifySsl ? ', unVerifySsl' : ''}`)
|
|
||||||
|
|
||||||
log.info('sni intercept: sni replace servername:', rOptions.hostname, '➜', rOptions.servername, (unVerifySsl ? ', unVerifySsl' : ''))
|
const unVerifySslStr = unVerifySsl ? ', unVerifySsl' : ''
|
||||||
|
res.setHeader('DS-Interceptor', `sni: ${interceptOpt.sni}${unVerifySslStr}`)
|
||||||
|
|
||||||
|
log.info(`sni intercept: sni replace servername: ${rOptions.hostname} ➜ ${rOptions.servername}${unVerifySslStr}`)
|
||||||
return true
|
return true
|
||||||
},
|
},
|
||||||
is (interceptOpt) {
|
is (interceptOpt) {
|
||||||
|
|
|
@ -0,0 +1,21 @@
|
||||||
|
module.exports = {
|
||||||
|
name: 'unVerifySsl',
|
||||||
|
priority: 123,
|
||||||
|
requestIntercept (context, interceptOpt, req, res, ssl, next) {
|
||||||
|
const { rOptions, log } = context
|
||||||
|
|
||||||
|
if (rOptions.agent.options.rejectUnauthorized && rOptions.agent.unVerifySslAgent) {
|
||||||
|
rOptions.agent = rOptions.agent.unVerifySslAgent
|
||||||
|
log.info(`unVerifySsl intercept: ${rOptions.hostname}, unVerifySsl`)
|
||||||
|
res.setHeader('DS-Interceptor', 'unVerifySsl')
|
||||||
|
} else {
|
||||||
|
log.info(`unVerifySsl intercept: ${rOptions.hostname}, already unVerifySsl`)
|
||||||
|
res.setHeader('DS-Interceptor', 'already unVerifySsl')
|
||||||
|
}
|
||||||
|
|
||||||
|
return true
|
||||||
|
},
|
||||||
|
is (interceptOpt) {
|
||||||
|
return interceptOpt.unVerifySsl === true
|
||||||
|
},
|
||||||
|
}
|
|
@ -10,6 +10,7 @@ const requestReplace = require('./impl/req/requestReplace')
|
||||||
|
|
||||||
const proxy = require('./impl/req/proxy')
|
const proxy = require('./impl/req/proxy')
|
||||||
const sni = require('./impl/req/sni')
|
const sni = require('./impl/req/sni')
|
||||||
|
const unVerifySsl = require('./impl/req/unVerifySsl')
|
||||||
|
|
||||||
const baiduOcr = require('./impl/req/baiduOcr')
|
const baiduOcr = require('./impl/req/baiduOcr')
|
||||||
|
|
||||||
|
@ -25,7 +26,7 @@ module.exports = [
|
||||||
OPTIONS,
|
OPTIONS,
|
||||||
success, redirect, abort, cacheReq,
|
success, redirect, abort, cacheReq,
|
||||||
requestReplace,
|
requestReplace,
|
||||||
proxy, sni,
|
proxy, sni, unVerifySsl,
|
||||||
baiduOcr,
|
baiduOcr,
|
||||||
|
|
||||||
// response interceptor impls
|
// response interceptor impls
|
||||||
|
|
Loading…
Reference in New Issue