Pārlūkot izejas kodu

Replaced Express-Brute store from Mongo to Mongoose

NGPixel 8 gadi atpakaļ
vecāks
revīzija
2cf8f2c247
4 mainītis faili ar 23 papildinājumiem un 8 dzēšanām
  1. 0 1
      .travis.yml
  2. 2 6
      controllers/auth.js
  3. 20 0
      models/bruteforce.js
  4. 1 1
      package.json

+ 0 - 1
.travis.yml

@@ -12,7 +12,6 @@ env:
   global:
   - CXX=g++-4.8
   - secure: VCgscCCKhvHu0tW8e3jo6wydckE6jDkEfC2Zd5aSZytYAex05qahU45cmksqMIT1uBCcC4CKRK4caoKac/+818EyKBTV+vAL74cMMc8NeLNVY2m50+ohu8GYu+ByIffttK7cnXN7xIzyuK4csI7qz84jxLW0KYgYQ+6SPbUG3Hy6gr0P0CztNmAFfyhTam4OKSIiXyvQZW0fZoSruOpUYS5pxvCBi4AxpRY8+6IxCL8xYqF49P0l28nn0C/NYUklwag6l4JF32PrcLAU5S+NIXXgJX499cZO4C2m2GljJeolbvGue3ZEtadv5NkmQuFQ1WGb5aURHPkll0hXsWKxT0bH9P1a4Gt1h/J885acWG4U6QZA1Zds/Z4ymNeLA0MzzoAaDK1q8sRglhDJnZYb4Zm5jy7ZA3vFwb+zcGaOT//pCVpcsZINRnd0Qu9LC5NKPrfmyFAAMAXDdo78BEnwryUviWP5976JZmQAfDIWvmGGTs5i1yjiTRi+NVgH0YpfxtI9MTEJo++r5/zNH/jewxj1D8esaamphp6mQvxvpl388veQDw3REUZQ49muzrdK2YYmVRkzLfH2uMsHInN3WqEl3/mTpH76u0nlxMF6HlrVdgB2UNPjlXbSooWXLfdAw98NpCZ7BAFcCcT8Oa9cYw+40rJrdfem5J2EimG5ltw=
-  - secure: msnBRkjis9v8Orlkubhla/HaniYPYsPgCzFIsS/BJW9HiiUdYm89M2YbNcJvo0s0otG/ta8r+oPzbd2jW7gndW8iUTrgwtMzBPSm674qXMAocRQKCHZa8BZGFMML5CYErUZm6ZDN9SIXq+s//igKnU+QLQmYUhsIeOFS+tIidGCwExu0ppXqUViuWVZpK37c/6/9SxRB0RMUwOaBiRwAThb8VM+ZfnYxxwMSfWT01zySWw2QAVKKLubeuXuOI8ci6OY+FcxcS0HB6XFaUH5YFrTw6KLqF/gxx2HgS5LI+6hn5ko5KQu2V5+ZS4VFRkwnjzSxNIdtEZnqd0qj+qVnEO7R1GnluKfqgTSb2GuzKhaIjUO+dB0gVqwY31wfNAwjCLNMY98ZMv9nJbv9l5iTJqMjCLPvdAmUuFJBCXoX98jDMiSfN3z+4VFVJapt70BENzP51gtj2qf3zsLfYhTQxwozuZvxt/koP1+HfdJhskBG734qioc49VO5Sqsj8OwkbVyl55mHCkkAXFyxAbO8eoSmK9ZhhZ7AbypCYVvmsMbjDRlmHCxXiG9DpVWiajeYKBeK+KEzQ2nKDrz5POHHY7PHXaZsNDMoIuigPdOr2AUVPMjsr74KJL49HowR+UF0zq4PDKHxp9wXlt50JPhfsvm7m//8/1XefVpJWUco0vM=
   - secure: afxMIIz9YeKKBc0WdafTrQorzsIZSEM8wqUB3ffrC41s+FEXl4VGIl8ZxKWZ/k2W+y7qCWSVfS4vMHv6CYy++Xq87NUczWPqFq99QXNHYpXWD0JK3clLY1DADuRDYeVA/kGkjH3MAAVd5s4I8TK7cmLwZDiwT7ybiYGLnAeQPR5IK1p/WwULEE+UTvSXudKfQIpi8K/EjbjLcB+EcDFPngAvX0LW6qXn0E+Z9NG6aru7/QhCTkHTYIc6k6r/bzWKhRAp+XaA184GxsyxNvIWTiBpeVK8XwDORkotobvgvDoz8uQHMjldtNFg5BL386WjNSh0Ljg242GQVTpbh0ju9F4XC7GN11tRDHwOBbSLa+X/sBomyONgBAve6roqtiQgZ3T92SycyjW06vhG7akC+yAKnAKVL+JdWWvg4qPhppKRAa57/5Se9GlAthSXvhfGvkaKtA4IUq9Jr7FksF4f+tCkSfNeJBYnlV+c/oBY7ZZ9gMUslXuDtv8Dbgp2aa4ELeA9R0U+5Ac42JzzbfojwOaLpEvFYs2cdZybOPlUq/EO/rx2Oxi9Xk2oPL4UW9xV5ZlwYmCw/rXpzSWo4dl4i0tEPN+5ZPtgQGz5pIBeI0LGGvEhCya/Tg+Xc9Bd7/0Ox7cLgNk0vrTEVjW+Z/b3XMhVwVlwmTuVM5wylzaZRcc=
 cache:
   directories:

+ 2 - 6
controllers/auth.js

@@ -2,17 +2,13 @@ var express = require('express');
 var router = express.Router();
 var passport = require('passport');
 var ExpressBrute = require('express-brute');
-var ExpressBruteMongoStore = require('express-brute-mongo');
+var ExpressBruteMongooseStore = require('express-brute-mongoose');
 var moment = require('moment');
 
 /**
  * Setup Express-Brute
  */
-var EBstore = new ExpressBruteMongoStore((ready) => {
-	db.onReady.then(() => {
-		ready(db.connection.collection('bruteforce-store'));
-	});
-});
+var EBstore = new ExpressBruteMongooseStore(db.Bruteforce);
 var bruteforce = new ExpressBrute(EBstore, {
 	freeRetries: 5,
 	minWait: 60 * 1000,

+ 20 - 0
models/bruteforce.js

@@ -0,0 +1,20 @@
+"use strict";
+
+const modb = require('mongoose');
+
+/**
+ * BruteForce schema
+ *
+ * @type       {<Mongoose.Schema>}
+ */
+var bruteForceSchema = modb.Schema({
+	_id: { type: String, index: 1 },
+	data: {
+		count: Number,
+		lastRequest: Date,
+		firstRequest: Date
+	},
+	expires: { type: Date, index: { expires: '1d' } }
+});
+
+module.exports = modb.model('Bruteforce', bruteForceSchema);

+ 1 - 1
package.json

@@ -46,7 +46,7 @@
     "cron": "^1.1.1",
     "express": "^4.14.0",
     "express-brute": "^1.0.0",
-    "express-brute-mongo": "^0.1.0",
+    "express-brute-mongoose": "0.0.6",
     "express-session": "^1.14.1",
     "farmhash": "^1.2.1",
     "file-type": "^3.8.0",