Clase: Mongo::Auth::Gssapi::Conversation Privado

Hereda:
SaslConversationBase Mostrar todo
Definido en:
lib/mongo/auth/gssapi/conversation.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 de una sola conversación Kerberos entre el cliente y el servidor.

Desde:

  • 2.0.0

Colapso delresumen constante

START_MESSAGE =

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 primer cliente base.

Desde:

  • 2.0.0

{ saslStart: 1, autoAuthorize: 1 }.freeze
CONTINUE_MESSAGE =

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

Resumen de atributos de la instancia colapsar

Atributos heredados de ConversationBase

#conexión, #usuario

Resumen del método de instancia colapsar

Métodos heredados de SaslConversationBase

#iniciar

Métodos heredados de ConversationBase

#build_message, #speculative_auth_document, #validate_external_auth_source

Detalles del constructor

#inicializar(usuario, conexión, **opts) ⇒ 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.

Crear la nueva conversación.

Ejemplos:

Crear la nueva conversación.

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

Parámetros:

  • usuario (Auth::User)

    El usuario de quien hablar.

  • Conexión (Mongo::Connection)

    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 menos que ¿definido?(Mongo::GssapiNative)
    requieren 'mongo_kerberos'
  end
  @authenticator = Mongo::GssapiNative::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 (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 autenticador El autenticador nativo SASL.

Devuelve:

  • (Authenticator)

    authenticator El autenticador SASL nativo.

Desde:

  • 2.0.0



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

def autenticador
  @authenticator
end

#idInteger (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:

  • (Número entero)

    El ID de la conversación.

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 primer_documento_cliente
  start_token = autenticador.initialize_challenge
  MENSAJE DE INICIO.fusionar(mecanismo: Gssapi::MECANISMO, contenido: 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:

  • reply_document (BSON::Document)

    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(reply_document, Conexión)
  @id = reply_document['conversationId']
  payload = reply_document[' carga útil ']

  continue_token = autenticador.evaluate_challenge(payload)
  selector = CONTINUAR_MENSAJE.fusionar(contenido: continue_token, conversationId: ID)
  build_message(Conexión, '$external', 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 query 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.fusionar(contenido: @continue_token, conversationId: ID)
  build_message(Conexión, '$external', selector)
end

#process_continue_response(reply_document) ⇒ Object

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(reply_document)
  payload = reply_document[' carga útil ']

  @continue_token = autenticador.evaluate_challenge(payload)
end