summaryrefslogtreecommitdiff
path: root/jstests/auth/localhostAuthBypass.js
diff options
context:
space:
mode:
Diffstat (limited to 'jstests/auth/localhostAuthBypass.js')
-rw-r--r--jstests/auth/localhostAuthBypass.js125
1 files changed, 73 insertions, 52 deletions
diff --git a/jstests/auth/localhostAuthBypass.js b/jstests/auth/localhostAuthBypass.js
index 1b07456fbe3..fdaf4386794 100644
--- a/jstests/auth/localhostAuthBypass.js
+++ b/jstests/auth/localhostAuthBypass.js
@@ -1,7 +1,7 @@
-//SERVER-6591: Localhost authentication exception doesn't work right on sharded cluster
+// SERVER-6591: Localhost authentication exception doesn't work right on sharded cluster
//
-//This test is to ensure that localhost authentication works correctly against a standalone
-//mongod whether it is hosted with "localhost" or a hostname.
+// This test is to ensure that localhost authentication works correctly against a standalone
+// mongod whether it is hosted with "localhost" or a hostname.
var baseName = "auth_server-6591";
var dbpath = MongoRunner.dataPath + baseName;
@@ -12,67 +12,81 @@ load("jstests/libs/host_ipaddr.js");
var createUser = function(mongo) {
print("============ adding a user.");
- mongo.getDB("admin").createUser(
- { user:username, pwd: password, roles: jsTest.adminUserRoles });
+ mongo.getDB("admin").createUser({user: username, pwd: password, roles: jsTest.adminUserRoles});
};
var assertCannotRunCommands = function(mongo) {
print("============ ensuring that commands cannot be run.");
var test = mongo.getDB("test");
- assert.throws( function() { test.system.users.findOne(); });
+ assert.throws(function() {
+ test.system.users.findOne();
+ });
- assert.writeError(test.foo.save({ _id: 0 }));
+ assert.writeError(test.foo.save({_id: 0}));
- assert.throws( function() { test.foo.findOne({_id:0}); });
+ assert.throws(function() {
+ test.foo.findOne({_id: 0});
+ });
- assert.writeError(test.foo.update({ _id: 0 }, { $set: { x: 20 }}));
- assert.writeError(test.foo.remove({ _id: 0 }));
+ assert.writeError(test.foo.update({_id: 0}, {$set: {x: 20}}));
+ assert.writeError(test.foo.remove({_id: 0}));
- assert.throws(function() {
+ assert.throws(function() {
test.foo.mapReduce(
- function() { emit(1, 1); },
- function(id, count) { return Array.sum(count); },
- { out: "other" });
+ function() {
+ emit(1, 1);
+ },
+ function(id, count) {
+ return Array.sum(count);
+ },
+ {out: "other"});
});
// Additional commands not permitted
// Create non-admin user
- assert.throws(function() { mongo.getDB("test").createUser(
- { user: username, pwd: password, roles: ['readWrite'] }); });
+ assert.throws(function() {
+ mongo.getDB("test").createUser({user: username, pwd: password, roles: ['readWrite']});
+ });
// DB operations
var authorizeErrorCode = 13;
- assert.commandFailedWithCode(mongo.getDB("test").copyDatabase("admin", "admin2"),
- authorizeErrorCode, "copyDatabase");
+ assert.commandFailedWithCode(
+ mongo.getDB("test").copyDatabase("admin", "admin2"), authorizeErrorCode, "copyDatabase");
// Create collection
- assert.commandFailedWithCode(mongo.getDB("test").createCollection(
- "log", { capped: true, size: 5242880, max: 5000 } ),
- authorizeErrorCode, "createCollection");
+ assert.commandFailedWithCode(
+ mongo.getDB("test").createCollection("log", {capped: true, size: 5242880, max: 5000}),
+ authorizeErrorCode,
+ "createCollection");
// Set/Get system parameters
- var params = [{ param: "journalCommitInterval", val: 200 },
- { param: "logLevel", val: 2 },
- { param: "logUserIds", val: 1 },
- { param: "notablescan", val: 1 },
- { param: "quiet", val: 1 },
- { param: "replApplyBatchSize", val: 10 },
- { param: "replIndexPrefetch", val: "none" },
- { param: "syncdelay", val: 30 },
- { param: "traceExceptions", val: true },
- { param: "sslMode", val: "preferSSL" },
- { param: "clusterAuthMode", val: "sendX509" },
- { param: "userCacheInvalidationIntervalSecs", val: 300 }
- ];
+ var params = [
+ {param: "journalCommitInterval", val: 200},
+ {param: "logLevel", val: 2},
+ {param: "logUserIds", val: 1},
+ {param: "notablescan", val: 1},
+ {param: "quiet", val: 1},
+ {param: "replApplyBatchSize", val: 10},
+ {param: "replIndexPrefetch", val: "none"},
+ {param: "syncdelay", val: 30},
+ {param: "traceExceptions", val: true},
+ {param: "sslMode", val: "preferSSL"},
+ {param: "clusterAuthMode", val: "sendX509"},
+ {param: "userCacheInvalidationIntervalSecs", val: 300}
+ ];
params.forEach(function(p) {
- var cmd = { setParameter: 1 };
+ var cmd = {
+ setParameter: 1
+ };
cmd[p.param] = p.val;
- assert.commandFailedWithCode(mongo.getDB("admin").runCommand(cmd),
- authorizeErrorCode, "setParameter: "+p.param);
+ assert.commandFailedWithCode(
+ mongo.getDB("admin").runCommand(cmd), authorizeErrorCode, "setParameter: " + p.param);
});
params.forEach(function(p) {
- var cmd = { getParameter: 1 };
+ var cmd = {
+ getParameter: 1
+ };
cmd[p.param] = 1;
- assert.commandFailedWithCode(mongo.getDB("admin").runCommand(cmd),
- authorizeErrorCode, "getParameter: "+p.param);
+ assert.commandFailedWithCode(
+ mongo.getDB("admin").runCommand(cmd), authorizeErrorCode, "getParameter: " + p.param);
});
};
@@ -83,15 +97,18 @@ var assertCanRunCommands = function(mongo) {
// will throw on failure
test.system.users.findOne();
- assert.writeOK(test.foo.save({ _id: 0 }));
- assert.writeOK(test.foo.update({ _id: 0 }, { $set: { x: 20 }}));
- assert.writeOK(test.foo.remove({ _id: 0 }));
+ assert.writeOK(test.foo.save({_id: 0}));
+ assert.writeOK(test.foo.update({_id: 0}, {$set: {x: 20}}));
+ assert.writeOK(test.foo.remove({_id: 0}));
test.foo.mapReduce(
- function() { emit(1, 1); },
- function(id, count) { return Array.sum(count); },
- { out: "other" }
- );
+ function() {
+ emit(1, 1);
+ },
+ function(id, count) {
+ return Array.sum(count);
+ },
+ {out: "other"});
};
var authenticate = function(mongo) {
@@ -101,7 +118,7 @@ var authenticate = function(mongo) {
var shutdown = function(conn) {
print("============ shutting down.");
- MongoRunner.stopMongod(conn.port, /*signal*/false, { auth: { user: username, pwd: password}});
+ MongoRunner.stopMongod(conn.port, /*signal*/ false, {auth: {user: username, pwd: password}});
};
var runTest = function(useHostName) {
@@ -143,10 +160,14 @@ var runNonlocalTest = function(host) {
var mongo = new Mongo(host + ":" + conn.port);
assertCannotRunCommands(mongo);
- assert.throws(function() { mongo.getDB("admin").createUser
- ({ user:username, pwd: password, roles: jsTest.adminUserRoles }); });
- assert.throws(function() { mongo.getDB("$external").createUser
- ({ user:username, pwd: password, roles: jsTest.adminUserRoles }); });
+ assert.throws(function() {
+ mongo.getDB("admin")
+ .createUser({user: username, pwd: password, roles: jsTest.adminUserRoles});
+ });
+ assert.throws(function() {
+ mongo.getDB("$external")
+ .createUser({user: username, pwd: password, roles: jsTest.adminUserRoles});
+ });
shutdown(conn);
};