Преглед изворни кода

Add authentication to view logs

Matt Coles пре 9 година
родитељ
комит
a739dcdba3
3 измењених фајлова са 23 додато и 0 уклоњено
  1. 1 0
      .gitignore
  2. 21 0
      index.js
  3. 1 0
      package.json

+ 1 - 0
.gitignore

@@ -1,4 +1,5 @@
1 1
 node_modules/
2
+logpasswd
2 3
 log/
3 4
 ssl/
4 5
 tags

+ 21 - 0
index.js

@@ -5,14 +5,35 @@ var app = express();
5 5
 var route_manager = require("./utils/route-manager.js");
6 6
 var scheduler = require("./presenters/schedule-controller.js");
7 7
 var bodyParser = require('body-parser');
8
+var basic_auth = require('basic-auth');
8 9
 var FileStreamRotator = require('file-stream-rotator');
9 10
 var morgan = require('morgan');
10 11
 var fs = require('fs');
11 12
 var logDirectory = 'log'
13
+var log_passwd = fs.readFileSync('logpasswd');
12 14
 var production = process.argv[2];
13 15
 
14 16
 scheduler.register_existing_events();
15 17
 
18
+var auth = function (req, res, next) {
19
+  function unauthorized(res) {
20
+    res.set('WWW-Authenticate', 'Basic realm=Authorization Required');
21
+    return res.send(401);
22
+  };
23
+
24
+  var user = basicAuth(req);
25
+
26
+  if (!user || !user.name || !user.pass) {
27
+    return unauthorized(res);
28
+  };
29
+
30
+  if (user.name === 'admin' && user.pass === log_passwd) {
31
+    return next();
32
+  } else {
33
+    return unauthorized(res);
34
+  };
35
+};
36
+
16 37
 // ensure log directory exists
17 38
 fs.existsSync(logDirectory) || fs.mkdirSync(logDirectory)
18 39
 

+ 1 - 0
package.json

@@ -13,6 +13,7 @@
13 13
   "author": "Matt",
14 14
   "license": "MIT",
15 15
   "dependencies": {
16
+    "basic-auth": "^1.0.3",
16 17
     "bcrypt-nodejs": "0.0.3",
17 18
     "body-parser": "^1.15.0",
18 19
     "express": "^4.13.4",