diff options
author | Andreas Nilsson <andreas.nilsson@10gen.com> | 2013-09-30 11:56:14 -0400 |
---|---|---|
committer | Andreas Nilsson <andreas.nilsson@10gen.com> | 2013-09-30 11:56:14 -0400 |
commit | 7e57c5311b0b660cf2df6d3c2cd01245adbafe21 (patch) | |
tree | 33ecdc558012ab5eb0cd3d80df38d3b3bf393913 /src/mongo/db | |
parent | d72362a3ecb69f8f504b2b99a0adf64ae5cf7a12 (diff) | |
download | mongo-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.cpp | 9 | ||||
-rw-r--r-- | src/mongo/db/commands/authentication_commands.cpp | 5 |
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(); } |