feat: 新增 unVerifySsl 拦截器

pull/406/head
王良 2024-11-27 13:05:19 +08:00
parent de70b083dd
commit 9e27eb4301
4 changed files with 41 additions and 6 deletions

View File

@ -122,11 +122,22 @@ module.exports = {
rOptions.agent = rOptions.agent.unVerifySslAgent
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 {
res.setHeader('DS-Interceptor', `proxy: ${proxyTarget}`)
log.info('proxy intercept: hostname:', originHostname, ', target', proxyTarget)
log.info(`proxy intercept: hostname: ${originHostname}, target${proxyTarget}`)
}
return true

View File

@ -12,9 +12,11 @@ module.exports = {
rOptions.agent = rOptions.agent.unVerifySslAgent
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
},
is (interceptOpt) {

View File

@ -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
},
}

View File

@ -10,6 +10,7 @@ const requestReplace = require('./impl/req/requestReplace')
const proxy = require('./impl/req/proxy')
const sni = require('./impl/req/sni')
const unVerifySsl = require('./impl/req/unVerifySsl')
const baiduOcr = require('./impl/req/baiduOcr')
@ -25,7 +26,7 @@ module.exports = [
OPTIONS,
success, redirect, abort, cacheReq,
requestReplace,
proxy, sni,
proxy, sni, unVerifySsl,
baiduOcr,
// response interceptor impls