diff options
author | Sara Golemon <sara.golemon@mongodb.com> | 2019-04-17 15:06:27 +0000 |
---|---|---|
committer | Sara Golemon <sara.golemon@mongodb.com> | 2019-04-17 23:00:40 +0000 |
commit | 5f6b94b6413a2af3106a342b11e261f647873035 (patch) | |
tree | 404d67f7e26dafb59db94e8a7090dff78fcb4565 | |
parent | 1c54cae8d57f6ab29c155a2a8edeb12da71c18d5 (diff) | |
download | mongo-5f6b94b6413a2af3106a342b11e261f647873035.tar.gz |
SERVER-39864 Only request principal name during saslStart when needed
(cherry picked from commit 70a2729673f629f1881abc042e3374e6cffa05bb)
-rw-r--r-- | src/mongo/db/auth/sasl_commands.cpp | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/mongo/db/auth/sasl_commands.cpp b/src/mongo/db/auth/sasl_commands.cpp index bea6b1192ab..6e04022cf38 100644 --- a/src/mongo/db/auth/sasl_commands.cpp +++ b/src/mongo/db/auth/sasl_commands.cpp @@ -238,7 +238,12 @@ StatusWith<std::unique_ptr<AuthenticationSession>> doSaslStart(OperationContext* auto session = std::make_unique<AuthenticationSession>(std::move(swMech.getValue())); Status statusStep = doSaslStep(opCtx, session.get(), cmdObj, result); - *principalName = session->getMechanism().getPrincipalName().toString(); + + if (!statusStep.isOK() || session->getMechanism().isSuccess()) { + // Only attempt to populate principal name if we're done (successfully or not). + *principalName = session->getMechanism().getPrincipalName().toString(); + } + if (!statusStep.isOK()) { return statusStep; } |