feat(HTTP Request Node): Option to provide SSL Certificates in Http Request Node (#9125)

Co-authored-by: कारतोफ्फेलस्क्रिप्ट™ <aditya@netroy.in>
This commit is contained in:
Michael Kret
2024-04-24 17:28:02 +03:00
committed by GitHub
parent 2cb62faf2f
commit 306b68da6b
9 changed files with 226 additions and 3 deletions

View File

@@ -1,3 +1,4 @@
import type { SecureContextOptions } from 'tls';
import type {
IDataObject,
INodeExecutionData,
@@ -8,6 +9,8 @@ import type {
import set from 'lodash/set';
import FormData from 'form-data';
import type { HttpSslAuthCredentials } from './interfaces';
import { formatPrivateKey } from '../../utils/utilities';
export type BodyParameter = {
name: string;
@@ -194,3 +197,18 @@ export const prepareRequestBody = async (
return await reduceAsync(parameters, defaultReducer);
}
};
export const setAgentOptions = (
requestOptions: IRequestOptions,
sslCertificates: HttpSslAuthCredentials | undefined,
) => {
if (sslCertificates) {
const agentOptions: SecureContextOptions = {};
if (sslCertificates.ca) agentOptions.ca = formatPrivateKey(sslCertificates.ca);
if (sslCertificates.cert) agentOptions.cert = formatPrivateKey(sslCertificates.cert);
if (sslCertificates.key) agentOptions.key = formatPrivateKey(sslCertificates.key);
if (sslCertificates.passphrase)
agentOptions.passphrase = formatPrivateKey(sslCertificates.passphrase);
requestOptions.agentOptions = agentOptions;
}
};