diff options
author | Spencer T Brody <spencer@10gen.com> | 2012-07-26 11:42:27 -0400 |
---|---|---|
committer | Spencer T Brody <spencer@10gen.com> | 2012-07-26 12:21:23 -0400 |
commit | 3e23612e277d68903f36a262c350b5512fcd5440 (patch) | |
tree | 028e7c05c4a131f0936396719202b0e7c0a24267 /jstests/sharding/auth2.js | |
parent | 2af911ee30486574e102278fbb5135716bdbf5da (diff) | |
download | mongo-3e23612e277d68903f36a262c350b5512fcd5440.tar.gz |
SERVER-6549. Use internal permissions when ensuring index in authenticate command
Diffstat (limited to 'jstests/sharding/auth2.js')
-rw-r--r-- | jstests/sharding/auth2.js | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/jstests/sharding/auth2.js b/jstests/sharding/auth2.js new file mode 100644 index 00000000000..4958d258a08 --- /dev/null +++ b/jstests/sharding/auth2.js @@ -0,0 +1,38 @@ +var st = new ShardingTest({ keyFile : 'jstests/libs/key1', shards : 2, chunksize : 1, config : 3, verbose : 2, + other : { nopreallocj : 1, verbose : 2, useHostname : true }}); + +st.printShardingStatus(); + +var mongos = st.s; +var adminDB = mongos.getDB('admin'); +var db = mongos.getDB('test') + + +// SERVER-6591: can't add first admin user even when connected to mongos on localhost. +var addUser = function( db, username, password ) { + var conn = db.getMongo(); + // Get a connection over localhost so that the first user can be added. + if ( conn.host.indexOf('localhost') != 0 ) { + print( 'Getting locahost connection instead of ' + conn + ' to add user' ); + var hosts = conn.host.split(','); + for ( var i = 0; i < hosts.length; i++ ) { + hosts[i] = 'localhost:' + hosts[i].split(':')[1]; + } + conn = new Mongo(hosts.join(',')); + } + return conn.getDB('admin').addUser( username, password ); +} + + +addUser( st._configConnection.getDB('admin'), 'admin', 'password' ); + +jsTestLog( "Add user was successful" ); + + +// Test for SERVER-6549, make sure that repeatedly logging in always passes. +for ( var i = 0; i < 100; i++ ) { + adminDB = new Mongo( mongos.host ).getDB('admin'); + assert( adminDB.auth('admin', 'password'), "Auth failed on attempt #: " + i ); +} + +st.stop();
\ No newline at end of file |