diff --git a/lib/auth.js b/lib/auth.js index a4160ba9f..7ff3157d8 100755 --- a/lib/auth.js +++ b/lib/auth.js @@ -144,11 +144,6 @@ internals.Auth.prototype._routeConfig = function (request) { internals.Auth.authenticate = function (request, next) { var auth = request.server.auth; - var config = auth._routeConfig(request); - if (!config) { - return next(); - } - return auth._authenticate(request, next); }; @@ -158,6 +153,11 @@ internals.Auth.prototype._authenticate = function (request, next) { var self = this; var config = this._routeConfig(request); + if (!config) { + return next(); + } + + request.auth.mode = config.mode; var authErrors = []; var strategyPos = 0; diff --git a/package.json b/package.json index 598559524..55f9aaa05 100755 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "hapi", "description": "HTTP Server framework", "homepage": "http://hapijs.com", - "version": "6.1.0", + "version": "6.2.0", "repository": { "type": "git", "url": "git://github.com/spumko/hapi" diff --git a/test/auth.js b/test/auth.js index 0ee534a28..5fdb50dec 100755 --- a/test/auth.js +++ b/test/auth.js @@ -41,6 +41,21 @@ describe('Auth', function () { }); }); + it('exposes mode', function (done) { + + var server = new Hapi.Server(); + server.auth.scheme('custom', internals.implementation); + server.auth.strategy('default', 'custom', true, { users: { steve: {} } }); + server.route({ method: 'GET', path: '/', handler: function (request, reply) { reply(request.auth.mode); } }); + + server.inject({ url: '/', headers: { authorization: 'Custom steve' } }, function (res) { + + expect(res.statusCode).to.equal(200); + expect(res.result).to.equal('required'); + done(); + }); + }); + it('sets default', function (done) { var server = new Hapi.Server();