summaryrefslogtreecommitdiff
path: root/src/mongo/db/commands/authentication_commands.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mongo/db/commands/authentication_commands.cpp')
-rw-r--r--src/mongo/db/commands/authentication_commands.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/mongo/db/commands/authentication_commands.cpp b/src/mongo/db/commands/authentication_commands.cpp
index 03759d1302e..eb6fa782ac5 100644
--- a/src/mongo/db/commands/authentication_commands.cpp
+++ b/src/mongo/db/commands/authentication_commands.cpp
@@ -162,6 +162,8 @@ bool CmdAuthenticate::run(OperationContext* txn,
}
UserName user(cmdObj.getStringField("user"), dbname);
+ uassert(ErrorCodes::AuthenticationFailed, "No user name provided", !user.getUser().empty());
+
if (Command::testCommandsEnabled && user.getDB() == "admin" &&
user.getUser() == internalSecurity.user->getName().getUser()) {
// Allows authenticating as the internal user against the admin database. This is to
@@ -315,6 +317,9 @@ Status CmdAuthenticate::_authenticateX509(OperationContext* txn,
ClientBasic* client = ClientBasic::getCurrent();
AuthorizationSession* authorizationSession = AuthorizationSession::get(client);
std::string clientSubjectName = client->port()->getX509SubjectName();
+ uassert(ErrorCodes::AuthenticationFailed,
+ "No verified subject name available from client",
+ !clientSubjectName.empty());
if (!getSSLManager()->getSSLConfiguration().hasCA) {
return Status(ErrorCodes::AuthenticationFailed,