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 de una sola conversación Kerberos entre el cliente y el servidor.
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.
{ 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.
{ saslContinuar: 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
#conexión, #usuario
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 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.
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
#autenticador ⇒ Autenticador (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.
59 60 61 |
# Archivo 'lib/mongo/auth/gssapi/conversation.rb', línea 59 def autenticador @authenticator end |
#id ⇒ Integer (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.
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_documento ⇒ 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.
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.
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) (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.
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) (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.
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 |