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 en torno a una única conversación de Kerberos entre el cliente y el servidor.

Desde:

  • 2.0.0

Resumen de constantes colapsar

START_MESSAGE =

Esta constante es parte de una API privada. Deberías evitar usar esta constante si es posible, ya que podría ser retirada o cambiada en el futuro.

El mensaje de primer cliente base.

Desde:

  • 2.0.0

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

Esta constante es parte de una API privada. Deberías evitar usar esta constante si es posible, ya que podría ser retirada o cambiada en el futuro.

El mensaje de continuación del cliente base.

Desde:

  • 2.0.0

{ saslContinue: 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 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.

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



41
42
43
44
45
46
47
48
49
50
51
# Archivo 'lib/mongo/auth/gssapi/conversation.rb', línea 41

def inicializar(usuario, Conexión, **opciones)
  super
  host = Conexión.dirección.host
  requerir 'mongo_kerberos' a menos que ¿definido?(mongo::GssapiNative)
  @authenticator = mongo::GssapiNative::Autenticador.Nuevo(
    usuario.Nombre,
    host,
    usuario.auth_mech_properties[:service_name] || 'mongodb',
    usuario.auth_mech_properties[canonicalize_host_name] || false
  )
end

Detalles de atributo de instancias

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

Devuelve:

  • (Authenticator)

    authenticator El autenticador SASL nativo.

Desde:

  • 2.0.0



54
55
56
# Archivo 'lib/mongo/auth/gssapi/conversation.rb', línea 54

def autenticador
  @authenticator
end

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

Obtenga el id de la conversación.

Devuelve:

  • (Número entero)

    El ID de la conversación.

Desde:

  • 2.0.0



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

def ID
  @id
end

Detalles del método de instancia

#client_first_documentobjeto

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.

Desde:

  • 2.0.0



61
62
63
64
# Archivo 'lib/mongo/auth/gssapi/conversation.rb', línea 61

def primer_documento_cliente
  start_token = autenticador.initialize_challenge
  START_MESSAGE.fusionar(mecanismo: Gssapi::MECANISMO, contenido: start_token)
end

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

Continuar la conversación.

Parámetros:

  • reply_document (BSON::Document)

    El documento de respuesta del mensaje anterior.

Devuelve:

Desde:

  • 2.0.0



72
73
74
75
76
77
78
79
# Archivo 'lib/mongo/auth/gssapi/conversation.rb', línea 72

def Continuar(reply_document, Conexión)
  @id = reply_document['conversationId']
  payload = reply_document["payload"]

  continue_token = autenticador.evaluate_challenge(payload)
  selector = CONTINUE_MESSAGE.fusionar(contenido: continue_token, conversationId: ID)
  build_message(Conexión, '$external', selector)
end

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

Devuelve:

Desde:

  • 2.0.0



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

def finaliza(Conexión)
  selector = CONTINUE_MESSAGE.fusionar(contenido: @continue_token, conversationId: ID)
  build_message(Conexión, '$external', selector)
end

#process_continue_response(reply_document) ⇒ Object

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.

Desde:

  • 2.0.0



81
82
83
84
85
# Archivo 'lib/mongo/auth/gssapi/conversation.rb', línea 81

def process_continue_response(reply_document)
  payload = reply_document["payload"]

  @continue_token = autenticador.evaluate_challenge(payload)
end