diff --git a/lib/passport-http/strategies/basic.js b/lib/passport-http/strategies/basic.js index a1f251c..4dbc9f7 100644 --- a/lib/passport-http/strategies/basic.js +++ b/lib/passport-http/strategies/basic.js @@ -71,11 +71,11 @@ BasicStrategy.prototype.authenticate = function(req) { var parts = authorization.split(' ') if (parts.length < 2) { return this.fail(400); } - var scheme = parts[0] - , credentials = new Buffer(parts[1], 'base64').toString().split(':'); - + var scheme = parts[0], credstr = new Buffer(parts[1], 'base64').toString(); + if (credstr.indexOf(":") === -1) { return this.fail(400); } + var credentials = [ credstr.substr(0, credstr.indexOf(":")), + credstr.substr(credstr.indexOf(":")+1) ]; if (!/Basic/i.test(scheme)) { return this.fail(this._challenge()); } - if (credentials.length < 2) { return this.fail(400); } var userid = credentials[0]; var password = credentials[1];