Clase: Mongo::Auth::ConversationBase Privada

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

Overview

Esta clase forma parte de una API privada. Debe evitar usarla siempre que sea posible, ya que podría eliminarse o modificarse 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

Colapso delresumen de atributos de instancia

Colapso del resumen del método de instancia

Detalles del constructor

#inicializar(usuario, conexión, **opciones) ⇒ ConversationBase

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

Crea la nueva conversación.

Parámetros:

  • usuario (Auth::User)

    El usuario a autenticar.

  • conexión (Mongo::Conexión)

    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)
  @usuario = 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 para autenticarse.

Devuelve:

  • (Mongo::Conexión)

    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 de 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
  @usuario
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 mensaje de construcción(conexión, fuente de autenticación, selector)
  Si conexión && conexión.características.¿op_msg_habilitado?
    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::DOMINIO,
      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 que se proporcionará al servidor en el protocolo de enlace 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 | nulo ) —

    Documento de autenticación especulativa.

Desde:

  • 2.0.0



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

def documento de autorización especulativa
  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 != ' $externo '
    user_name_msg = Si usuario.Nombre
      " #{nombre deusuario}"
    else
      ''
    end
    mecanismo = usuario.mecanismo
    propagar Auth::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