1
0
Fork 0
mirror of https://github.com/openstf/stf synced 2025-10-06 03:50:04 +02:00

Merge pull request #254 from openstf/optional-basic-auth-in-auth-mock

Add optional basic authentication in auth-mock
This commit is contained in:
Vishal Banthia 2016-02-03 15:59:06 +09:00
commit a6e783ed1d
3 changed files with 45 additions and 0 deletions

View file

@ -7,6 +7,7 @@ var bodyParser = require('body-parser')
var serveStatic = require('serve-static')
var csrf = require('csurf')
var Promise = require('bluebird')
var basicAuth = require('basic-auth')
var logger = require('../../util/logger')
var requtil = require('../../util/requtil')
@ -28,6 +29,28 @@ module.exports = function(options) {
})
})
// BasicAuth Middleware
var basicAuthMiddleware = function(req, res, next) {
function unauthorized(res) {
res.set('WWW-Authenticate', 'Basic realm=Authorization Required')
return res.send(401)
}
var user = basicAuth(req)
if (!user || !user.name || !user.pass) {
return unauthorized(res)
}
if (user.name === options.mock.basicAuth.username &&
user.pass === options.mock.basicAuth.password) {
return next()
}
else {
return unauthorized(res)
}
}
app.set('view engine', 'jade')
app.set('views', pathutil.resource('auth/mock/views'))
app.set('strict routing', true)
@ -49,6 +72,10 @@ module.exports = function(options) {
next()
})
if (options.mock.useBasicAuth) {
app.use(basicAuthMiddleware)
}
app.get('/', function(req, res) {
res.redirect('/auth/mock/')
})