Módulo: Mongo::Monitoramento::Evento::Seguro

Incluído em:
CommandFailed, CommandStarted, CommandSucceeded, Protocol::Msg, Protocol::Query
Definido em:
build/ruby-driver-v2.19/lib/mongo/monitoring/event/secure.rb

Visão geral

Fornece comportamento para redigir informações confidenciais de comandos e respostas.

Desde:

  • 2.1.0

Colapsode resumo constante

redacted_commands =

A lista de comandos que tem os dados editados por segurança.

Desde:

  • 2.1.0

[
  'autenticar',
  'saslStart',
  'sasl Continue',
  'getnonce',
  'createUser',
  'updateUser',
  'copydbgetnonce',
  'copydbsaslstart',
  'copydb'
].congelar

Recolhimento do Resumo do método de instância

Detalhes do método de instância

#comparison_allowed?(command_name) ⇒ true, false

A compactação é permitida para uma determinada mensagem de comando.

Exemplos:

Determine se a compressão é permitida para um determinado comando.

secure.compression_allowed?(selector)

Parâmetros:

  • command_name (string, símbolo)

    O nome do comando.

Retorna:

  • (verdadeiro, falso)

    Se a compressão pode ser usada.

Desde:

  • 2.5.0



106
107
108
# File 'build/ruby-driver-v2.19/lib/mongo/monitoring/event/secure.rb', linha 106

def compressão_allowed?(command_name)
  @compression_allowed ||= !redacted_commands.incluir?(command_name.to_s)
end

#redigido(command_name, document) ➤ BSON::Document

Reduzir informações seguras do documento se:

- its command is in the sensitive commands;
- its command is a hello/legacy hello command, and
  speculative authentication is enabled;
- corresponding started event is sensitive.

Exemplos:

Obtenha o documento editado .

secure.redacted(command_name, document)

Parâmetros:

  • command_name (string, símbolo)

    O nome do comando.

  • documento (BSON::Document)

    O documento.

Retorna:

  • (BSON::Document)

    O documento editado .

Desde:

  • 2.1.0



83
84
85
86
87
88
89
90
91
92
93
# File 'build/ruby-driver-v2.19/lib/mongo/monitoring/event/secure.rb', linha 83

def editado(command_name, documento)
  se %w(1 true sim).incluir?(ENV['MONGO_RUBY_DRIVER_UNREDACT_EVENTS']&.downcase)
    documento
  elsif respond_to?(:started_event) && started_event.sensível
    Método BSON::Documento.Novo
  elsif sensível?(command_name: command_name, Documento: documento)
    BSON::Documento.Novo
  mais
    documento
  end
end

#sensível?(command_name:, documento:) ➤ true | false

Verifique se o comando é sensível em termos de especificação de monitoramento de comando. Um comando é detectado como sensível se estiver na lista ou se for um comando hello/ legado hello e a autenticação especulativa estiver habilitada.

Parâmetros:

  • command_name (string, símbolo)

    O nome do comando.

  • documento (BSON::Document)

    O documento.

Retorna:

  • (verdadeiro | falso)

    Se o comando é sensível.

Desde:

  • 2.1.0



52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
# File 'build/ruby-driver-v2.19/lib/mongo/monitoring/event/secure.rb', linha 52

def sensível?(command_name:, Documento:)
  se redacted_commands.incluir?(command_name.to_s)
    true
  elsif %w(olá isMaster isMaster).incluir?(command_name.to_s) &&
    documento['speculativeAuthenticate']
    então
    # De acordo com a especificação do Monitoramento de Comando, para comandos de olá/olá legado
    # quando speculativeAuthenticate está presente, seus comandos E respostas
    # DEVE ser eliminado dos eventos.
    # Consulte https://github.com/mongodb/specifications/blob/master/source/command-monitoring/command-monitoring.rst#security
    true
  mais
    false
  end
end