refactor code around https.Agent for flexibility

This commit is contained in:
Brent Shikoski 2023-09-08 21:23:27 -05:00
parent e328a4615e
commit 593210456a
2 changed files with 21 additions and 16 deletions

View File

@ -47,26 +47,29 @@ const runSingleRequest = async function (filename, bruJson, collectionPath, coll
const options = getOptions(); const options = getOptions();
const insecure = get(options, 'insecure', false); const insecure = get(options, 'insecure', false);
const httpsAgentRequestFields = {};
if(insecure) { if(insecure) {
request.httpsAgent = new https.Agent({ httpsAgentRequestFields['rejectUnauthorized'] = false;
rejectUnauthorized: false
});
} }
else { else {
const cacertArray = [options['cacert'], process.env.SSL_CERT_FILE, process.env.NODE_EXTRA_CA_CERTS]; const cacertArray = [options['cacert'], process.env.SSL_CERT_FILE, process.env.NODE_EXTRA_CA_CERTS];
const cacertFile = cacertArray.find(el => el); const cacert = cacertArray.find(el => el);
if (cacert && cacert.length > 1) { if (cacert && cacert.length > 1) {
try { try {
caCrt = fs.readFileSync(cacert) caCrt = fs.readFileSync(cacert);
request.httpsAgent = new https.Agent({ httpsAgentRequestFields['ca'] = caCrt;
ca: caCrt
});
} catch(err) { } catch(err) {
console.log('Error reading CA cert file:' + cacert, err); console.log('Error reading CA cert file:' + cacert, err);
} }
} }
} }
if (Object.keys(httpsAgentRequestFields).length > 0) {
request.httpsAgent = new https.Agent({
...httpsAgentRequestFields
});
}
// stringify the request url encoded params // stringify the request url encoded params
if(request.headers['content-type'] === 'application/x-www-form-urlencoded') { if(request.headers['content-type'] === 'application/x-www-form-urlencoded') {
request.data = qs.stringify(request.data); request.data = qs.stringify(request.data);

View File

@ -148,11 +148,9 @@ const registerNetworkIpc = (mainWindow, watcher, lastOpenedCollections) => {
const preferences = getPreferences(); const preferences = getPreferences();
const sslVerification = get(preferences, 'request.sslVerification', true); const sslVerification = get(preferences, 'request.sslVerification', true);
const httpsAgentRequestFields = {};
if(!sslVerification) { if(!sslVerification) {
request.httpsAgent = new https.Agent({ httpsAgentRequestFields['rejectUnauthorized'] = false;
rejectUnauthorized: false
});
} }
else { else {
const cacertArray = [preferences['cacert'], process.env.SSL_CERT_FILE, process.env.NODE_EXTRA_CA_CERTS]; const cacertArray = [preferences['cacert'], process.env.SSL_CERT_FILE, process.env.NODE_EXTRA_CA_CERTS];
@ -160,16 +158,20 @@ const registerNetworkIpc = (mainWindow, watcher, lastOpenedCollections) => {
if (cacertFile && cacertFile.length > 1) { if (cacertFile && cacertFile.length > 1) {
try { try {
const fs = require('fs'); const fs = require('fs');
caCrt = fs.readFileSync(cacertFile) caCrt = fs.readFileSync(cacertFile);
request.httpsAgent = new https.Agent({ httpsAgentRequestFields['ca'] = caCrt;
ca: caCrt
});
} catch(err) { } catch(err) {
console.log('Error reading CA cert file:' + cacertFile, err); console.log('Error reading CA cert file:' + cacertFile, err);
} }
} }
} }
if (Object.keys(httpsAgentRequestFields).length > 0) {
request.httpsAgent = new https.Agent({
...httpsAgentRequestFields
});
}
const response = await axios(request); const response = await axios(request);
// run post-response vars // run post-response vars