summaryrefslogtreecommitdiff
path: root/src/mongo/db/auth/sasl_commands.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mongo/db/auth/sasl_commands.cpp')
-rw-r--r--src/mongo/db/auth/sasl_commands.cpp32
1 files changed, 10 insertions, 22 deletions
diff --git a/src/mongo/db/auth/sasl_commands.cpp b/src/mongo/db/auth/sasl_commands.cpp
index 81d784e64a3..7f4b1010462 100644
--- a/src/mongo/db/auth/sasl_commands.cpp
+++ b/src/mongo/db/auth/sasl_commands.cpp
@@ -335,26 +335,18 @@ bool runSaslStart(OperationContext* opCtx,
}
std::string principalName;
- try {
- auto session =
- uassertStatusOK(doSaslStart(opCtx, db, cmdObj, &result, &principalName, speculative));
- const bool isClusterMember = session->getMechanism().isClusterMember();
- if (isClusterMember) {
- uassertStatusOK(authCounter.incClusterAuthenticateReceived(mechanismName));
- }
- if (session->getMechanism().isSuccess()) {
+ auto swSession = doSaslStart(opCtx, db, cmdObj, &result, &principalName, speculative);
+
+ if (!swSession.isOK() || swSession.getValue()->getMechanism().isSuccess()) {
+ audit::logAuthentication(
+ client, mechanismName, UserName(principalName, db), swSession.getStatus().code());
+ uassertStatusOK(swSession.getStatus());
+ if (swSession.getValue()->getMechanism().isSuccess()) {
uassertStatusOK(authCounter.incAuthenticateSuccessful(mechanismName));
- if (isClusterMember) {
- uassertStatusOK(authCounter.incClusterAuthenticateSuccessful(mechanismName));
- }
- audit::logAuthentication(
- client, mechanismName, UserName(principalName, db), Status::OK().code());
- } else {
- AuthenticationSession::swap(client, session);
}
- } catch (const AssertionException& ex) {
- audit::logAuthentication(client, mechanismName, UserName(principalName, db), ex.code());
- throw;
+ } else {
+ auto session = std::move(swSession.getValue());
+ AuthenticationSession::swap(client, session);
}
return true;
@@ -416,10 +408,6 @@ bool CmdSaslContinue::run(OperationContext* opCtx,
if (mechanism.isSuccess()) {
uassertStatusOK(
authCounter.incAuthenticateSuccessful(mechanism.mechanismName().toString()));
- if (mechanism.isClusterMember()) {
- uassertStatusOK(authCounter.incClusterAuthenticateSuccessful(
- mechanism.mechanismName().toString()));
- }
}
} else {
AuthenticationSession::swap(client, sessionGuard);