summaryrefslogtreecommitdiff
path: root/jstests/auth
diff options
context:
space:
mode:
authorAndreas Nilsson <andreas.nilsson@10gen.com>2014-12-04 17:29:17 -0500
committerAndreas Nilsson <andreas.nilsson@10gen.com>2014-12-05 14:06:06 -0500
commit09abd0fe8e9dcce0980fff598b16e676e08abde2 (patch)
tree00879ab0a6686f2a5469af9ff27e51bc3e9e978a /jstests/auth
parentf6255b4bc16c6b1f3eee1bcadddb62648b33818b (diff)
downloadmongo-09abd0fe8e9dcce0980fff598b16e676e08abde2.tar.gz
SERVER-16002 SERVER-16369 - Cluster / standalone auth tests
Diffstat (limited to 'jstests/auth')
-rw-r--r--jstests/auth/iteration_count_control.js37
-rw-r--r--jstests/auth/user_special_chars.js14
2 files changed, 51 insertions, 0 deletions
diff --git a/jstests/auth/iteration_count_control.js b/jstests/auth/iteration_count_control.js
new file mode 100644
index 00000000000..9fe12e24019
--- /dev/null
+++ b/jstests/auth/iteration_count_control.js
@@ -0,0 +1,37 @@
+// Test SCRAM iterationCount control.
+load('./jstests/multiVersion/libs/auth_helpers.js');
+
+var conn = MongoRunner.runMongod({auth: ''});
+
+var testIterationCountControl = function(){
+ var adminDB = conn.getDB('admin');
+ adminDB.createUser({user: 'user1', pwd: 'pass',
+ roles: jsTest.adminUserRoles});
+ assert(adminDB.auth({user: 'user1', pwd: 'pass'}));
+
+ var userDoc = getUserDoc(adminDB, 'user1');
+ assert.eq(10000, userDoc.credentials['SCRAM-SHA-1'].iterationCount);
+
+ // Changing iterationCount should not affect existing users.
+ assert.commandWorked(adminDB.runCommand({setParameter: 1,
+ scramIterationCount: 5000}));
+ userDoc = getUserDoc(adminDB, 'user1');
+ assert.eq(10000, userDoc.credentials['SCRAM-SHA-1'].iterationCount);
+
+ // But it should take effect when the user's password is changed.
+ adminDB.updateUser('user1', {pwd: 'pass',
+ roles: jsTest.adminUserRoles});
+ userDoc = getUserDoc(adminDB, 'user1');
+ assert.eq(5000, userDoc.credentials['SCRAM-SHA-1'].iterationCount);
+
+ // Test invalid values for iterationCount. 5000 is the minimum value.
+ assert.commandFailed(adminDB.runCommand({setParameter: 1,
+ scramIterationCount: 4999}));
+ assert.commandFailed(adminDB.runCommand({setParameter: 1,
+ scramIterationCount: -5000}));
+ assert.commandFailed(adminDB.runCommand(
+ {setParameter: 1, scramIterationCount: 12345678901234567890}));
+}
+
+testIterationCountControl();
+MongoRunner.stopMongod(conn);
diff --git a/jstests/auth/user_special_chars.js b/jstests/auth/user_special_chars.js
new file mode 100644
index 00000000000..f4dc218aeb7
--- /dev/null
+++ b/jstests/auth/user_special_chars.js
@@ -0,0 +1,14 @@
+// Test creating and authenticating a user with special characters.
+var conn = MongoRunner.runMongod({auth: ''});
+
+var testUserSpecialCharacters = function(){
+ // Create a user with special characters, make sure it can auth.
+ var adminDB = conn.getDB('admin');
+ adminDB.createUser({user: '~`!@#$%^&*()-_+={}[]||;:",.//><', pwd: 'pass',
+ roles: jsTest.adminUserRoles});
+ assert(adminDB.auth({user: '~`!@#$%^&*()-_+={}[]||;:",.//><',
+ pwd: 'pass'}));
+}
+
+testUserSpecialCharacters();
+MongoRunner.stopMongod(conn);