From 004f137537c327b7ae940cb97cb18d4558ee6037 Mon Sep 17 00:00:00 2001 From: Lisa Croxford Date: Wed, 16 Oct 2013 17:13:58 +0100 Subject: [PATCH 1/2] Compatability fixes for working with iSpot --- http-digest-client.js | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/http-digest-client.js b/http-digest-client.js index 9d91133..2d1f28f 100644 --- a/http-digest-client.js +++ b/http-digest-client.js @@ -79,10 +79,15 @@ var HTTPDigest = function () { authParams.nc = nc; authParams.cnonce = cnonce; } + + authParams.algorithm='MD5'; + var headers = options.headers || {}; headers.Authorization = this._compileParams(authParams); options.headers = headers; + + console.log(options); http.request(options, function (res) { callback(res); @@ -93,18 +98,19 @@ var HTTPDigest = function () { // ## Parse challenge digest // HTTPDigest.prototype._parseChallenge = function parseChallenge(digest) { + console.log('_parseChallenge',digest); var prefix = "Digest "; var challenge = digest.substr(digest.indexOf(prefix) + prefix.length); var parts = challenge.split(','); var length = parts.length; var params = {}; for (var i = 0; i < length; i++) { - var part = parts[i].match(/^\s*?([a-zA-Z0-0]+)="(.*)"\s*?$/); + var part = parts[i].match(/^\s*?([a-zA-Z0-0]+)="?(.*)"?\s*?$/); if (part.length > 2) { - params[part[1]] = part[2]; + params[part[1]] = part[2].replace('"',''); } } - + console.log(params); return params; }; @@ -114,9 +120,14 @@ var HTTPDigest = function () { HTTPDigest.prototype._compileParams = function compileParams(params) { var parts = []; for (var i in params) { - parts.push(i + '="' + params[i] + '"'); + if(i === 'nc'){ + parts.push(i + '=' + params[i]); + }else{ + parts.push(i + '="' + params[i] + '"'); + } + } - return 'Digest ' + parts.join(','); + return 'Digest ' + parts.join(', '); }; // From 63827a245abff0a8d0a979d66c861b5bc925bb7c Mon Sep 17 00:00:00 2001 From: Lisa Croxford Date: Wed, 16 Oct 2013 17:21:24 +0100 Subject: [PATCH 2/2] Removed debug statements --- http-digest-client.js | 5 ----- 1 file changed, 5 deletions(-) diff --git a/http-digest-client.js b/http-digest-client.js index 2d1f28f..a39f110 100644 --- a/http-digest-client.js +++ b/http-digest-client.js @@ -82,13 +82,10 @@ var HTTPDigest = function () { authParams.algorithm='MD5'; - var headers = options.headers || {}; headers.Authorization = this._compileParams(authParams); options.headers = headers; - console.log(options); - http.request(options, function (res) { callback(res); }).end(); @@ -98,7 +95,6 @@ var HTTPDigest = function () { // ## Parse challenge digest // HTTPDigest.prototype._parseChallenge = function parseChallenge(digest) { - console.log('_parseChallenge',digest); var prefix = "Digest "; var challenge = digest.substr(digest.indexOf(prefix) + prefix.length); var parts = challenge.split(','); @@ -110,7 +106,6 @@ var HTTPDigest = function () { params[part[1]] = part[2].replace('"',''); } } - console.log(params); return params; };