0
0
mirror of https://github.com/mongodb/mongo.git synced 2024-12-01 01:21:03 +01:00
mongodb/jstests/auth/listcommands_preauth.js
2018-06-06 20:38:57 -04:00

39 lines
1.4 KiB
JavaScript

// Make sure that listCommands doesn't require authentication.
(function() {
'use strict';
function runTest(conn) {
const admin = conn.getDB('admin');
// Commands should succeed in auth-bypass mode regardless of requiresAuth().
assert.commandWorked(admin.runCommand({listDatabases: 1}),
"listDatabases shouldn't work pre-auth");
assert.commandWorked(admin.runCommand({listCommands: 1}),
"listCommands should work pre-auth");
admin.createUser({user: 'admin', pwd: 'pass', roles: jsTest.adminUserRoles});
// listDatabases should now fail, because auth bypass is no longer valid.
assert.commandFailed(admin.runCommand({listDatabases: 1}),
"listDatabases shouldn't work pre-auth");
// listCommands should STILL work, because it does not require auth.
assert.commandWorked(admin.runCommand({listCommands: 1}),
"listCommands should work pre-auth");
}
const mongod = MongoRunner.runMongod({auth: ""});
runTest(mongod);
MongoRunner.stopMongod(mongod);
// TODO: Remove 'shardAsReplicaSet: false' when SERVER-32672 is fixed.
const st = new ShardingTest({
shards: 1,
mongos: 1,
config: 1,
other: {keyFile: 'jstests/libs/key1', shardAsReplicaSet: false}
});
runTest(st.s0);
st.stop();
})();