UNPKG

@artilleryio/platform-fargate

Version:
1 lines 1.87 kB
"use strict";const path=require("path"),fs=require("fs"),chalk=require("chalk"),debug=require("debug")("plugin:sslClientAuth");function SSLClientAuthPlugin(script,events,opts){opts=path.dirname(opts.absoluteScriptPath);return script.config.__sslAuthPlugin={},script.config.tls&&script.config.tls.client&&(loadIfDefined(script.config,"pfx",opts),loadIfDefined(script.config,"key",opts),loadIfDefined(script.config,"cert",opts),loadIfDefined(script.config,"ca",opts),script.config.__sslAuthPlugin.passphrase=script.config.tls.client.passphrase,script.config.processor||(script.config.processor={}),script.config.processor.sslClientAuthPluginCreateVariables=function(userContext,events,done){return userContext.vars.tlsPfx=script.config.__sslAuthPlugin.pfx,userContext.vars.tlsKey=script.config.__sslAuthPlugin.key,userContext.vars.tlsCert=script.config.__sslAuthPlugin.cert,userContext.vars.tlsCa=script.config.__sslAuthPlugin.ca,userContext.vars.tlsPassphrase=script.config.__sslAuthPlugin.passphrase,done()},script.config.processor.sslClientAuthPluginSetOpts=function(req,userContext,events,done){return!1!==req.sslAuth&&(req.key=userContext.vars.tlsKey,req.cert=userContext.vars.tlsCert,req.ca=userContext.vars.tlsCa,req.pfx=userContext.vars.tlsPfx,req.passphrase=userContext.vars.tlsPassphrase),done()},script.scenarios.forEach(function(scenario){scenario.beforeScenario||(scenario.beforeScenario=[]),scenario.beforeRequest||(scenario.beforeRequest=[]),scenario.beforeScenario.push("sslClientAuthPluginCreateVariables"),scenario.beforeRequest.push("sslClientAuthPluginSetOpts")}),debug("Plugin initialized")),this}function loadIfDefined(config,propName,basePath){config.tls.client[propName]&&(basePath=path.resolve(basePath,config.tls.client[propName]),config.__sslAuthPlugin[propName]=fs.readFileSync(basePath,"utf8"))}module.exports={Plugin:SSLClientAuthPlugin};