Classe: Mongo::Auth::Gssapi::Conversation Private

Herda:
SaslConversationBase mostrar tudo
Definido em:
build/ruby-driver-v2.19/lib/mongo/auth/gssapi/conversation.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 em torno de uma única conversa Kerberos entre o cliente e o servidor.

Desde:

  • 2.0.0

Colapsode resumo constante

START_MSSAGE =

Essa constante faz parte de uma API privada. Você deve evitar usar essa constante, se possível, pois ela pode ser removida ou alterada no futuro.

A primeira mensagem do cliente base.

Desde:

  • 2.0.0

{ saslStart: 1, autoAuthorize: 1 }.congelar
CONTINUE_MSSAGE =

Essa constante faz parte de uma API privada. Você deve evitar usar essa constante, se possível, pois ela pode ser removida ou alterada no futuro.

O cliente base continua a mensagem.

Desde:

  • 2.0.0

{ sasl Continuar: 1 }.congelar

Constantes herdadas de SaslConversationBase

SaslConversationBase::CLIENT_CONTINUE_MSSAGE, SaslConversationBase::CLIENT_FIRST_MSSAGE

Recolhimento do Resumo do atributo de instância

Atributos herdados de ConversationBase

#connection, #user

Recolhimento do Resumo do método de instância

Métodos herdados de SaslConversationBase

#start

Métodos herdados de ConversationBase

#build_message, #speculative_auth_document, #validate_external_auth_source

Detalhes do construtor

#inicializar(usuário, conexão, **opts) ➤ Conversa

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.

Exemplos:

Crie a nova conversa.

Conversation.new(user, 'test.example.com')

Parâmetros:

  • utilizador (Auth::User)

    O usuário sobre o qual conversar.

  • Conexão (Mongo::Connection)

    A conexão para autenticar.

Desde:

  • 2.0.0



44
45
46
47
48
49
50
51
52
53
54
55
56
# File 'build/ruby-driver-v2.19/lib/mongo/auth/gssapi/conversation.rb', linha 44

def inicializar(utilizador, Conexão, **opciona)
  super
  Anfitrião = Conexão.endereço.Anfitrião
  a menos que definido?(mongo::GssapiNative)
    exigir 'mongo_kerberos'
  end
  @authenticator = mongo::GssapiNative::Autenticador.Novo(
    utilizador.name,
    Anfitrião,
    utilizador.auth_mech_properties[:service_name] || 'mongodb',
    utilizador.auth_mech_properties[:canonicize_host_name] || false,
  )
end

Detalhes do atributo da instância

#AuthenticatorAuthenticator (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 autenticador O autenticador SASL nativo.

Retorna:

  • (Autenticador)

    autenticador O autenticador SASL nativo.

Desde:

  • 2.0.0



59
60
61
# File 'build/ruby-driver-v2.19/lib/mongo/auth/gssapi/conversation.rb', linha 59

def autenticador
  @authenticator
end

#IDInteiro (somente leitura)

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.

Obtenha o ID da conversa.

Retorna:

  • (Inteiro)

    O ID da conversa.

Desde:

  • 2.0.0



64
65
66
# File 'build/ruby-driver-v2.19/lib/mongo/auth/gssapi/conversation.rb', linha 64

def id
  @id
end

Detalhes do método de instância

#client_first_document ➤ Objeto

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



66
67
68
69
# File 'build/ruby-driver-v2.19/lib/mongo/auth/gssapi/conversation.rb', linha 66

def client_first_document
  start_token = autenticador.initialize_challenge
  START_MSSAGE.mesclar(mecanismo: Gssapi::Mecanismo, carga útil: start_token)
end

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

Continue a conversa.

Parâmetros:

  • response_document (BSON::Document)

    O documento de resposta da mensagem anterior.

Retorna:

Desde:

  • 2.0.0



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

def Continuar(response_document, Conexão)
  @id = response_document['chatId']
  Carga útil = response_document['carga útil']

  continue_token = autenticador.avaliar_desafio(Carga útil)
  seletor = CONTINUE_MSSAGE.mesclar(carga útil: continue_token, ID da conversa: id)
  build_message(Conexão, '$external', seletor)
end

#finalize(connection) ⇒ 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 próxima query a ser executada.

Retorna:

Desde:

  • 2.0.0



93
94
95
96
# File 'build/ruby-driver-v2.19/lib/mongo/auth/gssapi/conversation.rb', linha 93

def finalizar(Conexão)
  seletor = CONTINUE_MSSAGE.mesclar(carga útil: @continue_token, ID da conversa: id)
  build_message(Conexão, '$external', seletor)
end

#process_contin_response(reply_document) ➤ Objeto

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



86
87
88
89
90
# File 'build/ruby-driver-v2.19/lib/mongo/auth/gssapi/conversation.rb', linha 86

def process_contin_response(response_document)
  Carga útil = response_document['carga útil']

  @continue_token = autenticador.avaliar_desafio(Carga útil)
end