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

#initializar(usuario, conexión, **opciones) ⇒ BaseConversacion

Este método forma parte de una API privada. Debe evitarlo 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 a autenticar.

  • Conexión (Mongo::Connection)

    La conexión para autenticarse.

Desde:

  • 2.0.0



32
33
34
35
# Archivo 'lib/mongo/auth/conversation_base.rb', línea 32

def inicializar(usuario, Conexión, **opta)
  @user = usuario
  @conexión = Conexión
end

Detalles de los atributos de instancia

#conexiónMongo::Connection (solo lectura)

Este método forma parte de una API privada. Debe evitarlo 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



41
42
43
# Archivo 'lib/mongo/auth/conversation_base.rb', línea 41

def Conexión
  @conexión
end

#usuarioAuth::User (sólo lectura)

Este método forma parte de una API privada. Debe evitarlo 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



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

def usuario
  @user
end

Detalles del método de instancia

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

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

Devuelve el mensaje a enviar.

Devuelve:

Desde:

  • 2.0.0



55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
# Archivo 'lib/mongo/auth/conversation_base.rb', línea 55

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

#speculative_auth_documentHash | nil

Este método forma parte de una API privada. Debe evitarlo 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



50
51
52
# Archivo 'lib/mongo/auth/conversation_base.rb', línea 50

def speculative_auth_document
  nulo
end

#validate_external_auth_sourceObject

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

Desde:

  • 2.0.0



74
75
76
77
78
79
80
81
82
83
84
# Archivo 'lib/mongo/auth/conversation_base.rb', línea 74

def validate_external_auth_source
  si usuario.fuente de autenticación != '$external'
    user_name_msg = si usuario.Nombre
      " #{usuario.nombre}"
    else
      ''
    end
    mecanismo = usuario.mecanismo
    propagar Autenticación::Configuración no válida, "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
end