32 lines
No EOL
813 B
JavaScript
32 lines
No EOL
813 B
JavaScript
// server
|
|
// /app/routes.js
|
|
var express = require('express');
|
|
var router = express.Router();
|
|
var handleConnection = require('./connectionHandler');
|
|
var basicAuth = require('basic-auth');
|
|
|
|
function auth(req, res, next) {
|
|
var credentials = basicAuth(req);
|
|
if (!credentials) {
|
|
res.setHeader('WWW-Authenticate', 'Basic realm="WebSSH2"');
|
|
return res.status(401).send('Authentication required.');
|
|
}
|
|
req.sshCredentials = credentials;
|
|
next();
|
|
}
|
|
|
|
// Scenario 1: No auth required
|
|
router.get('/', function(req, res) {
|
|
handleConnection(req, res);
|
|
});
|
|
|
|
// Scenario 2: Auth required
|
|
router.get('/host/:host', auth, function(req, res) {
|
|
handleConnection(req, res, {
|
|
host: req.params.host,
|
|
username: req.sshCredentials.name,
|
|
password: req.sshCredentials.pass
|
|
});
|
|
});
|
|
|
|
module.exports = router; |