Classe: Mongo::Auth::ConversationBase Private

Herda:
Objeto
  • Objeto
mostrar tudo
Definido em:
build/ruby-driver-v2.19/lib/mongo/auth/conversation_base.rb

Visão geral

Esta classe faz parte de uma API privada. Evite usar essa classe, se possível, pois ela pode ser removida ou alterada no futuro.

Define o comportamento comum em torno de conversas de autenticação entre o cliente e o servidor.

Desde:

  • 2.0.0

Recolhimento do Resumo do atributo de instância

Recolhimento do Resumo do método de instância

Detalhes do construtor

#initialize(usuário, conexão, **opts) ➤ ConversationBase

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Crie a nova conversa.

Parâmetros:

  • utilizador (Auth::User)

    O usuário a ser autenticado.

  • Conexão (Mongo::Connection)

    A conexão para autenticar.

Desde:

  • 2.0.0



32
33
34
35
# File 'build/ruby-driver-v2.19/lib/mongo/auth/conversation_base.rb', linha 32

def inicializar(utilizador, Conexão, **opciona)
  @user = utilizador
  @connection = Conexão
end

Detalhes do atributo da instância

#connectionMongo::Connection (readonly)

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Retorna a conexão para autenticar.

Retorna:

  • (Mongo::Connection)

    A conexão para autenticar.

Desde:

  • 2.0.0



41
42
43
# File 'build/ruby-driver-v2.19/lib/mongo/auth/conversation_base.rb', linha 41

def Conexão
  @connection
end

#userAuth::User (readonly)

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Retorna o usuário O usuário da conversa.

Retorna:

  • (Auth::User)

    usuário O usuário da conversa.

Desde:

  • 2.0.0



38
39
40
# File 'build/ruby-driver-v2.19/lib/mongo/auth/conversation_base.rb', linha 38

def utilizador
  @user
end

Detalhes do método de instância

#build_message(connection, auth_source, selector) ⇒ Protocol::Message

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Retorna A mensagem a ser enviada.

Retorna:

Desde:

  • 2.0.0



55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
# File 'build/ruby-driver-v2.19/lib/mongo/auth/conversation_base.rb', linha 55

def build_message(Conexão, auth_source, seletor)
  se Conexão && Conexão.características.op_msg_enabled?
    seletor = seletor.dup
    seletor[protocolo::Msg::DATABASE_IDENTIFIER] = auth_source
    cluster_time = Conexão.mongos? && Conexão.cluster_time
    se cluster_time
      seletor[(operação)::CLUSTER_TIME] = cluster_time
    end
    protocolo::Msg.Novo([], {}, seletor)
  mais
    protocolo::Query.Novo(
      auth_source,
      Database::Comando,
      seletor,
      limit: -1,
    )
  end
end

#speculative_auth_documentHash | nada

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Retorna o hash a ser fornecido ao servidor na negociação como valor da chave speculativeAuthenticate .

Se o mecanismo de autenticação não suportar autenticação especulativa, esse método retornará nulo.

Retorna:

  • (Hash | nulo)

    Documento de autenticação especulativo.

Desde:

  • 2.0.0



50
51
52
# File 'build/ruby-driver-v2.19/lib/mongo/auth/conversation_base.rb', linha 50

def speculative_auth_document
  nada
end

#validate_external_auth_sourceObjeto

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Desde:

  • 2.0.0



74
75
76
77
78
79
80
81
82
83
84
# File 'build/ruby-driver-v2.19/lib/mongo/auth/conversation_base.rb', linha 74

def validate_external_auth_source
  se utilizador.auth_source != '$external'
    user_name_msg = se utilizador.name
      " #{usuário.name}"
    mais
      ''
    end
    Mecanismo = utilizador.Mecanismo
    aumentar auth::Configuração inválida, "O usuário#{user_name_msg} especifica a fonte de autenticação' #{user.auth_source} ', mas a única fonte de autenticação válida para o mecanismo#{} é '$external'"
  end
end