Clase: Mongo::Auth::Gssapi::Conversation Privada

Hereda:
Base de conversaciones de Sasl Mostrar todo
Definido en:
lib/mongo/auth/gssapi/conversation.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 en torno a una única conversación Kerberos entre el cliente y el servidor.

Desde:

  • 2.0.0

Colapso delresumen constante

MENSAJE DE INICIO =

Esta constante forma parte de una API privada. Debe evitar usarla siempre que sea posible, ya que podría eliminarse o modificarse en el futuro.

El primer mensaje del cliente base.

Desde:

  • 2.0.0

{ saslInicio: 1, Autorizar: 1 }.freeze
CONTINUAR_MENSAJE =

Esta constante forma parte de una API privada. Debe evitar usarla siempre que sea posible, ya que podría eliminarse o modificarse en el futuro.

El mensaje de continuación del cliente base.

Desde:

  • 2.0.0

{ saslContinuar: 1 }.freeze

Constantes heredadas de SaslConversationBase

SaslConversationBase::CLIENT_CONTINUE_MESSAGE, SaslConversationBase::CLIENT_FIRST_MESSAGE

Colapso delresumen de atributos de instancia

Atributos heredados de ConversationBase

#conexión, #usuario

Colapso del resumen del método de instancia

Métodos heredados de SaslConversationBase

#comenzar

Métodos heredados de ConversationBase

#mensaje_de_compilación, #documento_de_autenticación_especulativo, #validar_fuente_de_autenticación_externa

Detalles del constructor

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

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.

Ejemplos:

Crea la nueva conversación.

Conversation.new(user, 'test.example.com')

Parámetros:

  • usuario (Auth::User)

    El usuario de quien hablar.

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

    La conexión para autenticarse.

Desde:

  • 2.0.0



44
45
46
47
48
49
50
51
52
53
54
55
56
# Archivo 'lib/mongo/auth/gssapi/conversation.rb', línea 44

def inicializar(usuario, conexión, **opta)
  Super
  host = conexión.dirección.host
  a no ser que ¿definido?(Mongo::GssapiNativo)
    requieren 'mongo_kerberos'
  end
  @autenticador = Mongo::GssapiNativo::Autenticador.Nuevo(
    usuario.Nombre,
    host,
    usuario.propiedades de auth_mech[:nombre_del_servicio] || 'mongodb',
    usuario.propiedades de auth_mech[:canonicalizar_nombre_de_host] || false,
  )
end

Detalles de los atributos de instancia

#autenticadorAutenticador (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 el autenticador El autenticador SASL nativo.

Devuelve:

  • (Autenticador)

    autenticador El autenticador SASL nativo.

Desde:

  • 2.0.0



59
60
61
# Archivo 'lib/mongo/auth/gssapi/conversation.rb', línea 59

def autenticador
  @autenticador
end

#idEntero (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.

Obtenga el id de la conversación.

Devuelve:

  • (Entero)

    La conversación id.

Desde:

  • 2.0.0



64
65
66
# Archivo 'lib/mongo/auth/gssapi/conversation.rb', línea 64

def ID.
  @id
end

Detalles del método de instancia

#cliente_primer_documentoObjeto

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



66
67
68
69
# Archivo 'lib/mongo/auth/gssapi/conversation.rb', línea 66

def cliente_primer_documento
  start_token = autenticador.initialize_challenge
  MENSAJE DE INICIO.unir(mecanismo: Gssapi::MECANISMO, carga útil: start_token)
end

#continue(reply_document, connection) ⇒ 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.

Continuar la conversación.

Parámetros:

  • responder_documento (BSON::Documento)

    El documento de respuesta del mensaje anterior.

Devuelve:

Desde:

  • 2.0.0



77
78
79
80
81
82
83
84
# Archivo 'lib/mongo/auth/gssapi/conversation.rb', línea 77

def continuar(responder_documento, conexión)
  @id = responder_documento['conversaciónId ']
  carga útil = responder_documento[' carga útil ']

  continue_token = autenticador.evaluar_desafío(carga útil)
  selector = CONTINUAR_MENSAJE.unir(carga útil: continue_token, ID de conversación: ID.)
  mensaje de construcción(conexión, ' $externo ', selector)
end

#finalize(connection) ⇒ 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 la siguiente consulta a ejecutar.

Devuelve:

Desde:

  • 2.0.0



93
94
95
96
# Archivo 'lib/mongo/auth/gssapi/conversation.rb', línea 93

def finaliza(conexión)
  selector = CONTINUAR_MENSAJE.unir(carga útil: @continue_token, ID de conversación: ID.)
  mensaje de construcción(conexión, ' $externo ', selector)
end

#proceso_continuar_respuesta(documento_de_respuesta) ⇒ Objeto

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



86
87
88
89
90
# Archivo 'lib/mongo/auth/gssapi/conversation.rb', línea 86

def proceso_continuar_respuesta(responder_documento)
  carga útil = responder_documento[' carga útil ']

  @continue_token = autenticador.evaluar_desafío(carga útil)
end