summaryrefslogtreecommitdiff
path: root/jstests/sharding/auth2.js
diff options
context:
space:
mode:
authorSpencer T Brody <spencer@10gen.com>2012-07-26 11:42:27 -0400
committerSpencer T Brody <spencer@10gen.com>2012-07-26 12:21:23 -0400
commit3e23612e277d68903f36a262c350b5512fcd5440 (patch)
tree028e7c05c4a131f0936396719202b0e7c0a24267 /jstests/sharding/auth2.js
parent2af911ee30486574e102278fbb5135716bdbf5da (diff)
downloadmongo-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.js38
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