function getPath(url) {
var pathRegex = /.+?\:\/\/.+?(\/.+?)(?:#|\?|$)/;
var result = url.match(pathRegex);
return result && result.length > 1 ? result[1] : '';
}
function getQueryString(url) {
var arrSplit = url.split('?');
return arrSplit.length > 1 ? url.substring(url.indexOf('?')+1) : '';
}
function getAuthHeader(httpMethod, requestUrl, requestBody) {
*var APP_ID = '<use the api key id>';*
*var SECRET_KEY = '<use the secret key>';*
var AUTH_TYPE = 'ARMOR-PSK';
var requestPath = getPath(requestUrl).replace('https', 'http');
var queryString = getQueryString(requestUrl);
if (httpMethod == 'GET' || !requestBody) {
requestBody = '';
} else {
requestBody = requestBody.toString();
requestBody = CryptoJS.enc.Base64.stringify(CryptoJS.SHA512(requestBody));
}
var timestamp = Math.round(new Date().getTime() / 1000);
var nonce = timestamp;
var requestData = [APP_ID, httpMethod, requestPath, nonce, timestamp, requestBody].join("");
var mac = CryptoJS.HmacSHA512(requestData, SECRET_KEY);
var signature = CryptoJS.enc.Base64.stringify(mac);
var authHeader = AUTH_TYPE + ' ' + APP_ID + ':' + signature + ':' + nonce + ':' + timestamp;
return authHeader;
}
postman.setEnvironmentVariable('hmacAuthHeader', getAuthHeader(request['method'], request['url'], request['data'])); |