summaryrefslogtreecommitdiff
path: root/jstests/auth/listcommands_preauth_base.js
diff options
context:
space:
mode:
Diffstat (limited to 'jstests/auth/listcommands_preauth_base.js')
-rw-r--r--jstests/auth/listcommands_preauth_base.js19
1 files changed, 19 insertions, 0 deletions
diff --git a/jstests/auth/listcommands_preauth_base.js b/jstests/auth/listcommands_preauth_base.js
new file mode 100644
index 00000000000..01cabf04d64
--- /dev/null
+++ b/jstests/auth/listcommands_preauth_base.js
@@ -0,0 +1,19 @@
+'use strict';
+
+// Make sure that listCommands doesn't require authentication.
+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");
+}