Clase: Mongo::Auth::ScramConversationBase Privada
- Hereda:
-
Base de conversaciones de Sasl
- Objeto
- Base de conversaciones
- Base de conversaciones de Sasl
- Mongo::Auth::ScramConversationBase
- Definido en:
- lib/mongo/auth/scram_conversation_base.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 común en torno a las conversaciones de autenticación entre el cliente y el servidor.
Subclases conocidas directas
Mongo::Auth::Scram::Conversación,256 Mongo::Auth::Scram::Conversación
Colapso delresumen constante
- RECUENTO MÍNIMO DE ITER =
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 recuento mínimo de iteraciones para SCRAM-SHA-1 y SCRAM-SHA-256.
4096
Constantes heredadas de SaslConversationBase
Mongo::Auth::SaslConversationBase::MENSAJE_CONTINUO_DEL_CLIENTE, Mongo::Auth::SaslConversationBase::MENSAJE_PRIMER_DEL_CLIENTE
Colapso delresumen de atributos de instancia
-
#client_nonce ⇒ Cadena
solo lectura
privada
Client_nonce El nonce del cliente.
-
#id ⇒ Integer
solo lectura
privada
Obtenga el id de la conversación.
Atributos heredados de ConversationBase
#conexión, #usuario
Colapso del resumen del método de instancia
-
#continue(reply_document, connection) ⇒ Protocol::Message
privada
Continúe la conversación SCRAM.
-
#finalize(connection) ⇒ Protocol::Message
privada
Finalizar la conversación SCRAM.
-
#inicializar(usuario, conexión, cliente_nonce: nil) ⇒ ScramConversationBase
constructor
privada
Crea la nueva conversación.
-
#proceso_continuar_respuesta(documento_de_respuesta) ⇒ Objeto
privada
Procesa la segunda respuesta del servidor.
-
#¿servidor verificado? ⇒ verdadero | fase
privada
Si el cliente verificó la ServerSignature desde el servidor.
-
#documento_de_autenticación_especulativa ⇒ Hash | nulo
privada
Devuelve el hash que se proporcionará al servidor en el protocolo de enlace como valor de la clave speculativeAuthenticate.
Métodos heredados de SaslConversationBase
Métodos heredados de ConversationBase
#mensaje_de_compilación, #validar_fuente_de_autenticación_externa
Detalles del constructor
#inicializar(usuario, conexión, cliente_nonce: nil) ⇒ ScramConversationBase
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.
38 39 40 41 |
# Archivo 'lib/mongo/auth/scram_conversation_base.rb', línea 38 def inicializar(usuario, conexión, client_nonce: nulo) Super @client_nonce = client_nonce || SecureRandom.base64 end |
Detalles de los atributos de instancia
#client_nonce ⇒ Cadena (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 client_nonce La nonce del cliente.
44 45 46 |
# Archivo 'lib/mongo/auth/scram_conversation_base.rb', línea 44 def client_nonce @client_nonce end |
#id ⇒ Entero (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.
52 53 54 |
# Archivo 'lib/mongo/auth/scram_conversation_base.rb', línea 52 def ID. @id end |
Detalles del método de instancia
#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 SCRAM. Esto envía el mensaje final del cliente al servidor tras configurar la respuesta de la comunicación anterior con el servidor.
73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 |
# Archivo 'lib/mongo/auth/scram_conversation_base.rb', línea 73 def continuar(responder_documento, conexión) @id = responder_documento['conversaciónId '] datos de carga útil = responder_documento[' carga útil '].datos parsed_data = carga útil de análisis(datos de carga útil) @server_nonce = parsed_data.Fetch('r') @salt = Base64.decodificación estricta64(parsed_data.Fetch('s')) @iteraciones = parsed_data.Fetch('i').to_i.grifo hacer |i| Si i < CONTEO MÍNIMO DE ITER propagar Error::Número de iteraciones insuficiente.Nuevo( Error::Número de iteraciones insuficiente.(CONTEO MÍNIMO DE ITER, i)) end end @mensaje_de_autorización = "#{}, #{payload_data },#{without_proof}" validate_server_nonce! selector = MENSAJE DE CONTINUACIÓN DEL CLIENTE.unir( carga útil: , ID de conversación: ID., ) (conexión, usuario.fuente de autenticación, 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.
Finalizar la conversación SCRAM. Esto debe repetirse hasta que la respuesta indique que la conversación ha finalizado.
111 112 113 114 115 116 117 |
# Archivo 'lib/mongo/auth/scram_conversation_base.rb', línea 111 def finaliza(conexión) selector = MENSAJE DE CONTINUACIÓN DEL CLIENTE.unir( carga útil: , ID de conversación: ID., ) (conexión, usuario.fuente de autenticación, 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.
Procesa la segunda respuesta del servidor.
100 101 102 103 |
# Archivo 'lib/mongo/auth/scram_conversation_base.rb', línea 100 def proceso_continuar_respuesta(responder_documento) datos de carga útil = carga útil de análisis(responder_documento[' carga útil '].datos) check_server_signature(datos de carga útil) end |
#¿servidor verificado? ⇒ verdadero | fase
Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.
Si el cliente verificó la ServerSignature desde el servidor.
59 60 61 |
# Archivo 'lib/mongo/auth/scram_conversation_base.rb', línea 59 def server_verified? !!@servidor_verificado end |
#speculative_auth_document ⇒ Hash | nil
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 hash que se proporcionará al servidor en el protocolo de enlace como valor de la clave speculativeAuthenticate.
Si el mecanismo de autenticación no es compatible con la autenticación especulativa, este método retorna nil.
126 127 128 |
# Archivo 'lib/mongo/auth/scram_conversation_base.rb', línea 126 def documento de autorización especulativa cliente_primer_documento.unir(db: usuario.fuente de autenticación) end |