diff options
author | Andreas Nilsson <andreas.nilsson@10gen.com> | 2014-12-04 17:29:17 -0500 |
---|---|---|
committer | Andreas Nilsson <andreas.nilsson@10gen.com> | 2014-12-05 14:06:06 -0500 |
commit | 09abd0fe8e9dcce0980fff598b16e676e08abde2 (patch) | |
tree | 00879ab0a6686f2a5469af9ff27e51bc3e9e978a /jstests/auth | |
parent | f6255b4bc16c6b1f3eee1bcadddb62648b33818b (diff) | |
download | mongo-09abd0fe8e9dcce0980fff598b16e676e08abde2.tar.gz |
SERVER-16002 SERVER-16369 - Cluster / standalone auth tests
Diffstat (limited to 'jstests/auth')
-rw-r--r-- | jstests/auth/iteration_count_control.js | 37 | ||||
-rw-r--r-- | jstests/auth/user_special_chars.js | 14 |
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); |