18 #include <boost/scoped_array.hpp>
21 #include "mongo/base/disallow_copying.h"
22 #include "mongo/base/status.h"
23 #include "mongo/base/string_data.h"
24 #include "mongo/client/export_macros.h"
25 #include "mongo/stdx/functional.h"
45 typedef stdx::function<SaslClientSession* (const std::string&)> SaslClientSessionFactoryFn;
46 static SaslClientSessionFactoryFn create;
52 parameterServiceName = 0,
53 parameterServiceHostname,
113 virtual Status step(
const StringData& inputData, std::string* outputData) = 0;
118 virtual bool isDone()
const = 0;
125 boost::scoped_array<char> data;
130 DataBuffer _parameters[numParameters];
virtual bool hasParameter(Parameter id)
Returns true if "id" identifies a parameter previously set by a call to setParameter().
virtual void setParameter(Parameter id, const StringData &value)
Sets the parameter identified by "id" to "value".
Parameter
Identifiers of parameters used to configure a SaslClientSession.
Definition: sasl_client_session.h:51
the main MongoDB namespace
Definition: bulk_operation_builder.h:24
Base class for the client side of a SASL authentication conversation.
Definition: sasl_client_session.h:42
virtual StringData getParameter(Parameter id)
Returns the value of a previously set parameter.
virtual Status initialize()=0
Initializes a session for use.
virtual bool isDone() const =0
Returns true if the authentication completed successfully.
virtual Status step(const StringData &inputData, std::string *outputData)=0
Takes one step of the SASL protocol on behalf of the client.
MONGO_CLIENT_API Status(MONGO_CLIENT_FUNC *saslClientAuthenticate)(DBClientWithCommands *client
Attempts to authenticate "client" using the SASL protocol.