Clase: Mongo::Auth::Gssapi::Conversation Privado
- Hereda:
-
SaslConversationBase
- Objeto
- ConversationBase
- SaslConversationBase
- Mongo::Auth::Gssapi::Conversation
- 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.
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.
{ 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.
{ saslContinue: 1 }.freeze
Constantes heredadas de SaslConversationBase
SaslConversationBase::CLIENT_CONTINUE_MESSAGE, SaslConversationBase::CLIENT_FIRST_MESSAGE
Resumen de atributos de la instancia colapsar
-
#autenticador ⇒ Autenticador
Solo lectura
privado
Autenticador. El autenticador SASL nativo.
-
#id ⇒ Integer
Solo lectura
privado
Obtenga el id de la conversación.
Atributos heredados de ConversationBase
Resumen del método de instancia colapsar
- #client_first_document ⇒ Objeto privado
-
#continue(reply_document, connection) ⇒ Protocol::Message
privado
Continuar la conversación.
-
#finalize(connection) ⇒ Protocol::Message
privado
La siguiente query para ejecutar.
-
#inicializar(usuario, conexión, **opciones) ⇒ Conversación
constructor
privado
Crear la nueva conversación.
- #process_continue_response(reply_document) ⇒ Object privado
Métodos heredados de SaslConversationBase
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.
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
#autenticador ⇒ Autenticador (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.
54 55 56 |
# Archivo 'lib/mongo/auth/gssapi/conversation.rb', línea 54 def autenticador @authenticator end |
#id ⇒ Integer (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.
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_document ⇒ objeto
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.
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.
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) (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.
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) (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.
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 |