From 3e176e03003d7459e096faa45f37c1e73f3ddff6 Mon Sep 17 00:00:00 2001 From: Spencer Jackson Date: Fri, 7 Nov 2014 18:51:02 -0500 Subject: [PATCH] CXX-402 Allow SCRAM without Cyrus SASL --- src/SConscript.client | 2 +- src/mongo/base/initializer_functions.h | 6 ++++-- src/mongo/client/dbclient.cpp | 7 +++++-- 3 files changed, 10 insertions(+), 5 deletions(-) diff --git a/src/SConscript.client b/src/SConscript.client index 621c4ca9f9..cb16694c6a 100644 --- a/src/SConscript.client +++ b/src/SConscript.client @@ -164,11 +164,11 @@ clientSourceSSL = [ 'mongo/client/sasl_scramsha1_client_conversation.cpp', 'mongo/crypto/crypto_openssl.cpp', 'mongo/crypto/mechanism_scram.cpp', + 'mongo/client/native_sasl_client_session.cpp', ] clientSourceSasl = [ 'mongo/client/cyrus_sasl_client_session.cpp', - 'mongo/client/native_sasl_client_session.cpp', 'mongo/client/sasl_sspi.cpp', ] diff --git a/src/mongo/base/initializer_functions.h b/src/mongo/base/initializer_functions.h index 33fe22d8d2..f700c730b5 100644 --- a/src/mongo/base/initializer_functions.h +++ b/src/mongo/base/initializer_functions.h @@ -19,10 +19,12 @@ INSTALL_FUNCTION(base_init) // "default" INSTALL_FUNCTION(bson_oid) // "OIDGeneration" INSTALL_FUNCTION(logger_logstream_builder) // "LogstreamBuilder" INSTALL_FUNCTION(logger_logger) // "GlobalLogManager" -#ifdef MONGO_SASL +#ifdef MONGO_SSL INSTALL_FUNCTION(client_sasl_client_authenticate_impl) // "SaslClientAuthenticateFunction" -INSTALL_FUNCTION(client_cyrus_sasl_client_session) // "CyrusSaslAllocatorsAndMutexes,CyrusSaslClientContext" INSTALL_FUNCTION(client_native_sasl_client_session) // "NativeSaslClientContext" +#endif +#ifdef MONGO_SASL +INSTALL_FUNCTION(client_cyrus_sasl_client_session) // "CyrusSaslAllocatorsAndMutexes,CyrusSaslClientContext" INSTALL_FUNCTION(client_sasl_sspi) // "SaslSspiClientPlugin,SaslCramClientPlugin,SaslPlainClientPlugin" #endif INSTALL_FUNCTION(util_fail_point_service) // "FailPointRegistry,AllFailPointsRegistered" diff --git a/src/mongo/client/dbclient.cpp b/src/mongo/client/dbclient.cpp index f5024b924e..2e42e3c9c1 100644 --- a/src/mongo/client/dbclient.cpp +++ b/src/mongo/client/dbclient.cpp @@ -914,8 +914,11 @@ namespace mongo { uassertStatusOK(saslClientAuthenticate(this, params)); } else { - uasserted(ErrorCodes::BadValue, - mechanism + " mechanism support not compiled into client library."); + std::string error = mechanism + " mechanism support not compiled into client library."; + if (mechanism == "SCRAM-SHA-1") { + error += " Client library must be compiled with --ssl"; + } + uasserted(ErrorCodes::BadValue, error); } };