mirror of
https://github.com/DeviceFarmer/stf.git
synced 2026-04-18 05:53:19 +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:
@@ -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/')
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user