diff --git a/config/env/default.js b/config/env/default.js
index a3e8c5e8..9aeb343e 100644
--- a/config/env/default.js
+++ b/config/env/default.js
@@ -46,5 +46,15 @@ module.exports = {
fileSize: 1 * 1024 * 1024 // Max file size in bytes (1 MB)
}
}
+ },
+ shared: {
+ owasp: {
+ allowPassphrases: true,
+ maxLength: 128,
+ minLength: 10,
+ minPhraseLength: 20,
+ minOptionalTestsToPass: 4
+ }
}
+
};
diff --git a/modules/core/server/controllers/core.server.controller.js b/modules/core/server/controllers/core.server.controller.js
index ed9b0440..c4a8973c 100644
--- a/modules/core/server/controllers/core.server.controller.js
+++ b/modules/core/server/controllers/core.server.controller.js
@@ -1,12 +1,13 @@
'use strict';
-var validator = require('validator');
+var validator = require('validator'),
+ path = require('path'),
+ config = require(path.resolve('./config/config'));
/**
* Render the main application page
*/
exports.renderIndex = function (req, res) {
-
var safeUserObject = null;
if (req.user) {
safeUserObject = {
@@ -24,7 +25,8 @@ exports.renderIndex = function (req, res) {
}
res.render('modules/core/server/views/index', {
- user: JSON.stringify(safeUserObject)
+ user: JSON.stringify(safeUserObject),
+ sharedConfig: JSON.stringify(config.shared)
});
};
diff --git a/modules/core/server/views/layout.server.view.html b/modules/core/server/views/layout.server.view.html
index d7327245..13c822f4 100644
--- a/modules/core/server/views/layout.server.view.html
+++ b/modules/core/server/views/layout.server.view.html
@@ -65,6 +65,12 @@
{{#each jsFiles}}{{/each}}
+
+
+
{{#if livereload}}
diff --git a/modules/users/client/services/password-validator.client.service.js b/modules/users/client/services/password-validator.client.service.js
index d1635586..3c330bcc 100644
--- a/modules/users/client/services/password-validator.client.service.js
+++ b/modules/users/client/services/password-validator.client.service.js
@@ -24,7 +24,7 @@
}
function getPopoverMsg() {
- var popoverMsg = 'Please enter a passphrase or password with 10 or more characters, numbers, lowercase, uppercase, and special characters.';
+ var popoverMsg = 'Please enter a passphrase or password with ' + owaspPasswordStrengthTest.configs.minLength + ' or more characters, numbers, lowercase, uppercase, and special characters.';
return popoverMsg;
}
diff --git a/modules/users/server/config/strategies/local.js b/modules/users/server/config/strategies/local.js
index 9caa9091..a458e8d7 100644
--- a/modules/users/server/config/strategies/local.js
+++ b/modules/users/server/config/strategies/local.js
@@ -22,7 +22,7 @@ module.exports = function () {
}
if (!user || !user.authenticate(password)) {
return done(null, false, {
- message: 'Invalid username or password'
+ message: 'Invalid username or password (' + (new Date()).toLocaleTimeString() + ')'
});
}
diff --git a/modules/users/server/models/user.server.model.js b/modules/users/server/models/user.server.model.js
index 0797faa4..16c3546e 100644
--- a/modules/users/server/models/user.server.model.js
+++ b/modules/users/server/models/user.server.model.js
@@ -4,12 +4,17 @@
* Module dependencies
*/
var mongoose = require('mongoose'),
+ path = require('path'),
+ config = require(path.resolve('./config/config')),
Schema = mongoose.Schema,
crypto = require('crypto'),
validator = require('validator'),
generatePassword = require('generate-password'),
owasp = require('owasp-password-strength-test');
+owasp.config(config.shared.owasp);
+
+
/**
* A Validation function for local strategy properties
*/