class Mongo::Auth::CR::Conversation

Defines behavior around a single MONGODB-CR conversation between the client and server.

@since 2.0.0 @deprecated MONGODB-CR authentication mechanism is deprecated

as of MongoDB 3.6. Support for it in the Ruby driver will be
removed in driver version 3.0. Please use SCRAM instead.

@api private

Constants

LOGIN

The login message base.

@since 2.0.0

Attributes

database[R]

@return [ String ] database The database to authenticate against.

nonce[R]

@return [ String ] nonce The initial auth nonce.

Public Instance Methods

continue(reply_document, connection) click to toggle source

Continue the CR conversation. This sends the client final message to the server after setting the reply from the previous server communication.

@param [ BSON::Document ] reply_document The reply document of the

previous message.

@param [ Mongo::Server::Connection ] connection The connection being

authenticated.

@return [ Protocol::Message ] The next message to send.

@since 2.0.0

# File lib/mongo/auth/cr/conversation.rb, line 69
def continue(reply_document, connection)
  @nonce = reply_document[Auth::NONCE]
  selector = LOGIN.merge(user: user.name, nonce: nonce, key: user.auth_key(nonce))
  build_message(connection, user.auth_source, selector)
end
start(connection) click to toggle source

Start the CR conversation. This returns the first message that needs to be sent to the server.

@param [ Server::Connection ] connection The connection being

authenticated.

@return [ Protocol::Message ] The first CR conversation message.

@since 2.0.0

# File lib/mongo/auth/cr/conversation.rb, line 52
def start(connection)
  selector = Auth::GET_NONCE
  build_message(connection, user.auth_source, selector)
end