Classe: Mongo::Crypt::AutoEncrypter Private
- Herda:
-
Objeto
- Objeto
- Mongo::Crypt::AutoEncrypter
- Definido em:
- build/ruby-driver-v2.19/lib/mongo/crypt/auto_encrypter.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.
Um AutoEcnrypter é um objeto que encapsula o comportamento da criptografia automática. Ele controla todos os recursos associados à criptografia automática, incluindo o identificador libmongocrypt, o objeto de cliente do Key Vault, o objeto de cliente objeto e a E/S de criptografia.
O AutoEncrypter é mantido como uma instância em um Mongo::Client. Objetos de cliente com o mesmo auto_encryption_options Hash podem compartilhar AutoEncrypters.
Colapsode resumo constante
- DEFAULT_EXTRA_OPTIONS =
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.
Um hash de valores padrão para a opção :extra_options
Opções::Editado.Novo({ mongocryptd_uri: 'mongodb://localhost:27020', mongocryptd_bypass_spawn: false, mongocryptd_spawn_path: 'mongocryptd', mongocryptd_spawn_args: ['--idleShutdownTimeoutSecs=60'], })
Recolhimento do Resumo do atributo de instância
- #key_vault_client ➤ Objeto Somente leitura privado
- #metadata_client ⇒ Object Somente leitura privado
- #mongocryptd_client ➤ Objeto Somente leitura privado
- #opções ➤ Objeto Somente leitura privado
Recolhimento do Resumo do método de instância
-
#close ➤ true
privado
Feche os recursos criados pelo AutoEncrypter.
-
#descriptografar(comando) ➤ BSON::Document
privado
Descriptografar um comando de banco de dados de dados .
-
#encrypt(database_name, command) ➤ BSON::Document
privado
Criptografe um comando de banco de dados de dados .
-
#criptografar? ➤ Booleano
privado
Se esse criptografador deve executar a criptografia (retorna falso se a opção :bypass_auto_encryption estiver definida como true).
-
#initialize(opções) ➤ AutoEncrypter
construtor
privado
Configure opções relacionadas à criptografia e variáveis de instância na classe que inclui esse módulo.
Detalhes do construtor
#initialize(opções) ➤ AutoEncrypter
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.
Configure opções relacionadas à criptografia e variáveis de instância na classe que inclui esse módulo. Chama o mesmo método no módulo Mongo::Crypt::Encrypter.
93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 |
# File 'build/ruby-driver-v2.19/lib/mongo/crypt/auto_encrypter.rb', linha 93 def inicializar() Criptografar.validate_ffi! # Observe que essa chamada pode eventualmente, por meio de outras invocações de método, # cria clientes adicionais que precisam ser limpos. @opções = ().congelar @crypt_handle = Criptografar::Lidar.Novo( Criptografar::KMS::Credenciais.Novo(@opções[:kms_providers]), Criptografar::KMS::Validações.(@opções[:kms_tls_options]), schema_map: @opções[:schema_map], schema_map_path: @opções[:schema_map_path], encryption_fields_map: @opções[:encrypted_fields_map], bypass_query_analysis: @opções[:bypass_query_analysis], crypt_shared_lib_path: @opções[:extra_options][:crypt_shared_lib_path], crypt_shared_lib_required: @opções[:extra_options][:crypt_shared_lib_required], ) @mongocryptd_options = @opções[:extra_options].fatia( :mongocryptd_uri, :mongocryptd_bypass_spawn, :mongocryptd_spawn_path, :mongocryptd_spawn_args ) @mongocryptd_options[:mongocryptd_bypass_spawn] = @opções[:bypass_auto_encryption] || @opções[:extra_options][:mongocryptd_bypass_spawn] || @crypt_handle.crypt_shared_lib_available? || @opções[:extra_options][:crypt_shared_lib_required] a menos que @opções[:extra_options][:crypt_shared_lib_required] || @crypt_handle.crypt_shared_lib_available? || @opções[:bypass_query_analysis] # Defina o tempo limite de seleção do servidor para 1 para evitar que o cliente espere um # longo tempo limite antes de gerar mongocryptd @mongocryptd_client = Cliente.Novo( @opções[:extra_options][:mongocryptd_uri], monitoring_io: @opções[:cliente].[:monitoring_io], populator_io: @opções[:cliente].[:populator_io], server_selection_timeout: 10, database: @opções[:cliente].[:database] ) end começar @encryption_io = EncryptionIO.Novo( cliente: @opções[:cliente], mongocryptd_client: @mongocryptd_client, key_vault_namespace: @opções[:key_vault_namespace], key_vault_client: @key_vault_client, metadata_client: @metadata_client, mongocryptd_options: @mongocryptd_options ) salvar começar @mongocryptd_client&.Fechar salvar => e log_service("Erro ao fechar o cliente mongocryptd no construtor do criptografador automático: #{e.class}: #{e}") # Solte esta exceção para que a exceção original seja gerada end aumentar end salvar se @key_vault_client && @key_vault_client != [:cliente] && @key_vault_client.cluster != [:cliente].cluster então começar @key_vault_client.Fechar salvar => e log_service("Erro ao fechar o cliente do cofre de chaves no construtor do criptografador automático: #{e.classe}: #{e}") # Solte esta exceção para que a exceção original seja gerada end end se @metadata_client && @metadata_client != [:cliente] && @metadata_client.cluster != [:cliente].cluster então começar @metadata_client.Fechar salvar => e log_service("Erro ao fechar o cliente de metadados no construtor do criptografador automático: #{e.class}: #{e}") # Solte esta exceção para que a exceção original seja gerada end end aumentar end |
Detalhes do atributo da instância
#key_vault_client ➤ Objeto (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.
34 35 36 |
# File 'build/ruby-driver-v2.19/lib/mongo/crypt/auto_encrypter.rb', linha 34 def key_vault_client @key_vault_client end |
#metadata_client ➤ Objeto (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.
35 36 37 |
# File 'build/ruby-driver-v2.19/lib/mongo/crypt/auto_encrypter.rb', linha 35 def @metadata_client end |
#mongocryptd_client ➤ Objeto (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.
33 34 35 |
# File 'build/ruby-driver-v2.19/lib/mongo/crypt/auto_encrypter.rb', linha 33 def mongocryptd_client @mongocryptd_client end |
#opções Objeto (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.
36 37 38 |
# File 'build/ruby-driver-v2.19/lib/mongo/crypt/auto_encrypter.rb', linha 36 def @opções end |
Detalhes do método de instância
#close ➤ true
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.
Feche os recursos criados pelo AutoEncrypter.
217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 |
# File 'build/ruby-driver-v2.19/lib/mongo/crypt/auto_encrypter.rb', linha 217 def Fechar @mongocryptd_client.Fechar se @mongocryptd_client se @key_vault_client && @key_vault_client != [:cliente] && @key_vault_client.cluster != [:cliente].cluster então @key_vault_client.Fechar end se @metadata_client && @metadata_client != [:cliente] && @metadata_client.cluster != [:cliente].cluster então @metadata_client.Fechar end true end |
#descriptografar(comando) ➤ BSON::Document
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.
Descriptografar um comando de banco de dados de dados .
206 207 208 209 210 211 212 |
# File 'build/ruby-driver-v2.19/lib/mongo/crypt/auto_encrypter.rb', linha 206 def Descriptografar(comando) AutoDecryptionContext.Novo( @crypt_handle, @encryption_io, comando ).run_state_machine end |
#encrypt(database_name, command) ➤ BSON::Document
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.
Criptografe um comando de banco de dados de dados .
192 193 194 195 196 197 198 199 |
# File 'build/ruby-driver-v2.19/lib/mongo/crypt/auto_encrypter.rb', linha 192 def criptografar(nome do banco de dados, comando) AutoEncryptionContext.Novo( @crypt_handle, @encryption_io, nome do banco de dados, comando ).run_state_machine end |
#criptografar? ➤ Booleano
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.
Se esse criptografador deve executar a criptografia (retorna falso se a opção :bypass_auto_encryption estiver definida como true).
181 182 183 |
# File 'build/ruby-driver-v2.19/lib/mongo/crypt/auto_encrypter.rb', linha 181 def criptografar? !@opções[:bypass_auto_encryption] end |