Class Mongo::Auth::CR::Conversation
In: lib/mongo/auth/cr/conversation.rb
Parent: Object

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.

Methods

continue   finalize   new   start  

Constants

LOGIN = { authenticate: 1 }.freeze   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.
reply  [R]  @return [ Protocol::Message ] reply The current reply in the
  conversation.
user  [R]  @return [ User ] user The user for the conversation.

Public Class methods

Create the new conversation.

@example Create the new conversation.

  Conversation.new(user, "admin")

@param [ Auth::User ] user The user to converse about.

@since 2.0.0

Public Instance methods

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

@example Continue the conversation.

  conversation.continue(reply)

@param [ Protocol::Message ] reply The reply of the previous

  message.

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

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

@since 2.0.0

Finalize the CR conversation. This is meant to be iterated until the provided reply indicates the conversation is finished.

@example Finalize the conversation.

  conversation.finalize(reply)

@param [ Protocol::Message ] reply The reply of the previous

  message.

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

@since 2.0.0

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

@example Start the conversation.

  conversation.start

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

@since 2.0.0

[Validate]