Clase: Mongo::Auth::ConversationBase Privado

Hereda:
Objeto
  • Objeto
Mostrar todo
Definido en:
lib/mongo/auth/conversation_base.rb

Overview

Esta clase forma parte de una API privada. Evita usar esta clase si es posible, ya que puede ser eliminada o modificada en el futuro.

Define el comportamiento común en torno a las conversaciones de autenticación entre el cliente y el servidor.

Desde:

  • 2.0.0

Resumen de atributos de la instancia colapsar

Resumen del método de instancia colapsar

Detalles del Constructor

#initialize(usuario, conexión, **_opts) ⇒ ConversaciónBase

Este método es parte de una API privada. Se debe evitar el uso de este método si es posible, ya que podría eliminarse o modificarse en el futuro.

Crear la nueva conversación.

Parámetros:

  • usuario (Auth::User)

    El usuario debe autenticarse.

  • Conexión (Mongo::Connection)

    La conexión para autenticarse.

Desde:

  • 2.0.0



29
30
31
32
# Archivo 'lib/mongo/auth/conversation_base.rb', línea 29

def inicializar(usuario, Conexión, **_opts)
  @user = usuario
  @connection = Conexión
end

Detalles de atributo de instancias

#conexiónMongo::Connection (solo lectura)

Este método es parte de una API privada. Se debe evitar el uso de este método si es posible, ya que podría eliminarse o modificarse en el futuro.

Devuelve la conexión sobre la que autenticar.

Devuelve:

  • (Mongo::Connection)

    La conexión para autenticarse.

Desde:

  • 2.0.0



38
39
40
# Archivo 'lib/mongo/auth/conversation_base.rb', línea 38

def Conexión
  @connection
end

#usuarioAuth::User (sólo lectura)

Este método es parte de una API privada. Se debe evitar el uso de este método si es posible, ya que podría eliminarse o modificarse en el futuro.

Devuelve usuario El usuario para la conversación.

Devuelve:

  • (Auth::User)

    usuario El usuario para la conversación.

Desde:

  • 2.0.0



35
36
37
# Archivo 'lib/mongo/auth/conversation_base.rb', línea 35

def usuario
  @user
end

Detalles del método de instancia

#build_message(connection, auth_source, selector) ⇒ Protocol::Message

Este método es parte de una API privada. Se debe evitar el uso de este método si es posible, ya que podría eliminarse o modificarse en el futuro.

Devuelve el mensaje a enviar.

Devuelve:

Desde:

  • 2.0.0



52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
# Archivo 'lib/mongo/auth/conversation_base.rb', línea 52

def build_message(Conexión, auth_source, selector)
  si Conexión
    selector = selector.dup
    selector[protocolo::Msg::DATABASE_IDENTIFIER] = auth_source
    cluster_time = Conexión.mongos? && Conexión.cluster_time
    selector[Operación::CLUSTER_TIME] = cluster_time si cluster_time
    protocolo::Msg.Nuevo([], {}, selector)
  else
    protocolo::Query.Nuevo(
      auth_source,
      Database::Comando,
      selector,
      limit: -1
    )
  end
end

#speculative_auth_documentHash | nil

Este método es parte de una API privada. Se debe evitar el uso de este método si es posible, ya que podría eliminarse o modificarse en el futuro.

Devuelve el hash para proporcionar al servidor en el proceso de handshake como valor de la clave speculativeAuthenticate.

Si el mecanismo de autenticación no es compatible con la autenticación especulativa, este método retorna nil.

Devuelve:

  • (Hash | nil)

    Documento de autenticación especulativo.

Desde:

  • 2.0.0



47
48
49
# Archivo 'lib/mongo/auth/conversation_base.rb', línea 47

def speculative_auth_document
  nulo
end

#validate_external_auth_sourceObject

Este método es parte de una API privada. Se debe evitar el uso de este método si es posible, ya que podría eliminarse o modificarse en el futuro.

Aumenta:

Desde:

  • 2.0.0



69
70
71
72
73
74
75
76
77
78
79
80
# Archivo 'lib/mongo/auth/conversation_base.rb', línea 69

def validate_external_auth_source
  return a menos que usuario.auth_source != '$external'

  user_name_msg = si usuario.Nombre
                    " #{usuario.nombre}"
                  else
                    ''
                  end
  mecanismo = usuario.mecanismo
  propagar Autenticación::InvalidConfiguration,
        "Usuario#{user_name_msg} especifica origen de autenticación '#{user.auth_source}', pero la única fuente de autenticación válida para #{mechanism} es '$external'"
end