summaryrefslogtreecommitdiff
path: root/src/mongo/db
diff options
context:
space:
mode:
authorAndreas Nilsson <andreas.nilsson@10gen.com>2013-09-30 11:56:14 -0400
committerAndreas Nilsson <andreas.nilsson@10gen.com>2013-09-30 11:56:14 -0400
commit7e57c5311b0b660cf2df6d3c2cd01245adbafe21 (patch)
tree33ecdc558012ab5eb0cd3d80df38d3b3bf393913 /src/mongo/db
parentd72362a3ecb69f8f504b2b99a0adf64ae5cf7a12 (diff)
downloadmongo-7e57c5311b0b660cf2df6d3c2cd01245adbafe21.tar.gz
SERVER-10946 Fixed user acquisition for $external
Diffstat (limited to 'src/mongo/db')
-rw-r--r--src/mongo/db/auth/authz_manager_external_state.cpp9
-rw-r--r--src/mongo/db/commands/authentication_commands.cpp5
2 files changed, 4 insertions, 10 deletions
diff --git a/src/mongo/db/auth/authz_manager_external_state.cpp b/src/mongo/db/auth/authz_manager_external_state.cpp
index c7dd09eb7be..cf2efc69e64 100644
--- a/src/mongo/db/auth/authz_manager_external_state.cpp
+++ b/src/mongo/db/auth/authz_manager_external_state.cpp
@@ -50,15 +50,6 @@ namespace mongo {
StringData dbname = userName.getDB();
- // Make sure the dbname is actually a database
- if (dbname == StringData("$external", StringData::LiteralTag()) ||
- dbname == AuthorizationManager::SERVER_RESOURCE_NAME ||
- dbname == AuthorizationManager::CLUSTER_RESOURCE_NAME) {
- return Status(ErrorCodes::UserNotFound,
- mongoutils::str::stream() << "No privilege documents stored in the " <<
- dbname << " user source.");
- }
-
if (!NamespaceString::validDBName(dbname)) {
return Status(ErrorCodes::BadValue,
mongoutils::str::stream() << "Bad database name \"" << dbname << "\"");
diff --git a/src/mongo/db/commands/authentication_commands.cpp b/src/mongo/db/commands/authentication_commands.cpp
index 1783dbd319e..d8a9081eb25 100644
--- a/src/mongo/db/commands/authentication_commands.cpp
+++ b/src/mongo/db/commands/authentication_commands.cpp
@@ -283,7 +283,10 @@ namespace mongo {
}
// Handle normal client authentication, only applies to client-server connections
else {
- authorizationSession->addAndAuthorizeUser(user);
+ Status status = authorizationSession->addAndAuthorizeUser(user);
+ if (!status.isOK()) {
+ return status;
+ }
}
return Status::OK();
}