summaryrefslogtreecommitdiff
path: root/src/mongo/client/native_sasl_client_session.cpp
diff options
context:
space:
mode:
authorSpencer Jackson <spencer.jackson@mongodb.com>2016-12-07 16:11:57 -0500
committerSpencer Jackson <spencer.jackson@mongodb.com>2017-07-11 16:20:07 -0400
commit16e83332ed20e4054324a1a7714506e74eed5180 (patch)
treeb0c03f332f37dc2ca5530a0bc6aa592cc3fbcb40 /src/mongo/client/native_sasl_client_session.cpp
parent78800570b838dd7e2bb53939d9d1a752d71e5ae3 (diff)
downloadmongo-16e83332ed20e4054324a1a7714506e74eed5180.tar.gz
SERVER-26952: Cache SCRAM-SHA-1 ClientKey
(cherry picked from commit 47da0b53f9cd27aeec1d2822780784866269a47d)
Diffstat (limited to 'src/mongo/client/native_sasl_client_session.cpp')
-rw-r--r--src/mongo/client/native_sasl_client_session.cpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/mongo/client/native_sasl_client_session.cpp b/src/mongo/client/native_sasl_client_session.cpp
index 7976c09e413..8f8d4fe91af 100644
--- a/src/mongo/client/native_sasl_client_session.cpp
+++ b/src/mongo/client/native_sasl_client_session.cpp
@@ -33,6 +33,7 @@
#include "mongo/client/sasl_client_conversation.h"
#include "mongo/client/sasl_plain_client_conversation.h"
#include "mongo/client/sasl_scramsha1_client_conversation.h"
+#include "mongo/client/scram_sha1_client_cache.h"
#include "mongo/util/mongoutils/str.h"
namespace mongo {
@@ -47,6 +48,9 @@ MONGO_INITIALIZER(NativeSaslClientContext)(InitializerContext* context) {
return Status::OK();
}
+// Global cache for SCRAM-SHA-1 credentials
+SCRAMSHA1ClientCache* scramsha1ClientCache = new SCRAMSHA1ClientCache;
+
} // namespace
NativeSaslClientSession::NativeSaslClientSession()
@@ -63,7 +67,7 @@ Status NativeSaslClientSession::initialize() {
if (mechanism == "PLAIN") {
_saslConversation.reset(new SaslPLAINClientConversation(this));
} else if (mechanism == "SCRAM-SHA-1") {
- _saslConversation.reset(new SaslSCRAMSHA1ClientConversation(this));
+ _saslConversation.reset(new SaslSCRAMSHA1ClientConversation(this, scramsha1ClientCache));
} else {
return Status(ErrorCodes::BadValue,
mongoutils::str::stream() << "SASL mechanism " << mechanism