클래스: Mongo::Crypt::AutoEncrypter Private
- 상속:
-
객체
- 객체
- Mongo::Crypt::AutoEncrypter
- 다음에 정의됨:
- build/ruby-driver-v2.19/lib/mongo/crypt/auto_encrypter.rb
개요
이 클래스는 비공개 API의 일부입니다. 이 클래스는 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
AutoEcnrypter는 자동 암호화 동작을 캡슐화하는 객체 입니다. libmongocrypt 처리하다, 키 볼트 클라이언트 객체, mongocryptd 클라이언트 객체 및 암호화 I/O를 포함하여 자동 암호화와 관련된 모든 리소스를 제어합니다.
자동 암호화기는 Mongo::Client에서 인스턴스로 유지됩니다. 동일한 auto_encryption_options 해시를 가진 클라이언트 객체는 자동 암호화기를 공유할 수 있습니다.
상수 요약 접기
- DEFAULT_EXTRA_OPTIONS =
이 상수는 비공개 API의 일부입니다. 이 상수는 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
:extra_options 옵션에 대한 기본값의 해시입니다.
옵션::편집됨.신규({ mongocryptd_uri: 'mongodb://localhost:27020', mongocryptd_bypass_spawn: 거짓, mongocryptd_spawn_path: 'mongocryptd', mongocryptd_spawn_args: ['--idleShutdownTimeoutSecs=60'], })
인스턴스 속성 요약 접기
- #key_vault_client ⇒ 객체 읽기 전용 비공개
- #metadata_client ⇒ Object 읽기 전용 비공개
- #mongocryptd_client ⇒ 객체 읽기 전용 비공개
- #options ⇒ 객체 읽기 전용 비공개
인스턴스 메서드 요약 접기
-
#닫기 ⇒ true
비공개
자동 암호화 프로그램에서 생성된 리소스를 닫습니다.
-
# BSON:: Document
비공개
데이터베이스 명령 을 해독합니다.
-
#암호화(database_name, 명령) ⇒ BSON::Document
비공개
데이터베이스 명령 을 암호화합니다.
-
#암호화? ⇒ 부울
비공개
이 암호화기가 암호화 를 수행해야 하는지 여부(:bypass_auto_encryption 옵션이 true로 설정하다 경우 false 반환).
-
#initialize(options) ⇒ AutoEncrypter
생성자
비공개
이 모듈을 포함하는 클래스에서 암호화 관련 옵션 및 인스턴스 변수를 설정합니다.
생성자 세부 정보
#initialize(options) ⇒ AutoEncrypter
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
이 모듈을 포함하는 클래스에서 암호화 관련 옵션 및 인스턴스 변수를 설정합니다. 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 |
# 파일 'build/ruby-driver-v2.19/lib/mongo/crypt/auto_encrypter.rb', 줄 93 def 초기화() 암호화.validate_ffi! # 이 호출은 결국 다른 메서드 호출을 통해 # 정리해야 하는 추가 클라이언트를 만듭니다. @options = ().동결 @crypt_handle = 암호화::핸들.신규( 암호화::KMS::자격 증명.신규(@options[:kms_providers]), 암호화::KMS::유효성 검사.(@options[:kms_tls_options]), schema_map: @options[:schema_map], schema_map_path: @options[:schema_map_path], encryption_fields_map: @options[:encrypted_fields_map], bypass_query_analysis: @options[:bypass_query_analysis], crypt_shared_lib_path: @options[:extra_options][:crypt_shared_lib_path], crypt_shared_lib_required: @options[:extra_options][:crypt_shared_lib_required], ) @mongocryptd_options = @options[:extra_options].슬라이스( :mongocryptd_uri, :mongocryptd_bypass_spawn, :mongocryptd_spawn_path, :mongocryptd_spawn_args ) @mongocryptd_options[:mongocryptd_bypass_spawn] = @options[:bypass_auto_encryption] || @options[:extra_options][:mongocryptd_bypass_spawn] || @crypt_handle.crypt_shared_lib_available? || @options[:extra_options][:crypt_shared_lib_required] 하지 않는 한 @options[:extra_options][:crypt_shared_lib_required] || @crypt_handle.crypt_shared_lib_available? || @options[:bypass_query_analysis] # 서버 선택 시간 제한을 1 으)로 설정하여 클라이언트 가 다음 시간 동안 기다리지 않도록 # mongocryptd를 생성하기 전에 긴 시간 초과 @mongocryptd_client = 고객.신규( @options[:extra_options][:mongocryptd_uri], monitoring_io: @options[:client].[:monitoring_io], populator_io: @options[:client].[:populator_io], server_selection_timeout: 10, database: @options[:client].[:database] ) end 시작 @encryption_io = EncryptionIO.신규( 클라이언트: @options[:client], mongocryptd_client: @mongocryptd_client, key_vault_namespace: @options[:key_vault_namespace], key_vault_client: @key_Vault_client, metadata_client: @metadata_client, mongocryptd_options: @mongocryptd_options ) 구출 시작 @mongocryptd_client&.닫기 구출 => e log_warn("자동 암호화기의 생성자에서 mongocryptd 클라이언트를 닫는 중 오류 발생: #{e.class}: #{e}") # 이 예외를 삭제하여 원래 예외가 발생하도록 합니다. end 올리다 end 구출 만약 @key_Vault_client && @key_Vault_client != [:client] && @key_Vault_client.cluster != [:client].cluster then 시작 @key_Vault_client.닫기 구출 => e log_warn("자동 암호화기의 생성자에서 키 볼트 클라이언트 를 닫는 동안 오류가 발생했습니다: #{e.class}: #{e}") # 이 예외를 삭제하여 원래 예외가 발생하도록 합니다. end end 만약 @metadata_client && @metadata_client != [:client] && @metadata_client.cluster != [:client].cluster then 시작 @metadata_client.닫기 구출 => e log_warn("자동 암호화기의 생성자에서 메타데이터 클라이언트를 닫는 중 오류가 발생했습니다: #{e.class}: #{e}") # 이 예외를 삭제하여 원래 예외가 발생하도록 합니다. end end 올리다 end |
인스턴스 속성 세부 정보
#key_vault_client ⇒ 객체 (읽기 전용)
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
34 35 36 |
# 파일 'build/ruby-driver-v2.19/lib/mongo/crypt/auto_encrypter.rb', 줄 34 def key_Vault_client @key_Vault_client end |
#metadata_client ⇒ 객체 (읽기 전용)
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
35 36 37 |
# 파일 'build/ruby-driver-v2.19/lib/mongo/crypt/auto_encrypter.rb', 줄 35 def @metadata_client end |
#mongocryptd_client ⇒ 객체 (읽기 전용)
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
33 34 35 |
# 파일 'build/ruby-driver-v2.19/lib/mongo/crypt/auto_encrypter.rb', 줄 33 def mongocryptd_client @mongocryptd_client end |
#options ⇒ 객체 (읽기 전용)
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
36 37 38 |
# 파일 'build/ruby-driver-v2.19/lib/mongo/crypt/auto_encrypter.rb', 줄 36 def @options end |
인스턴스 메서드 세부 정보
#닫기 ⇒ true
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
자동 암호화 프로그램에서 생성된 리소스를 닫습니다.
217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 |
# 파일 'build/ruby-driver-v2.19/lib/mongo/crypt/auto_encrypter.rb', 줄 217 def 닫기 @mongocryptd_client.닫기 만약 @mongocryptd_client 만약 @key_Vault_client && @key_Vault_client != [:client] && @key_Vault_client.cluster != [:client].cluster then @key_Vault_client.닫기 end 만약 @metadata_client && @metadata_client != [:client] && @metadata_client.cluster != [:client].cluster then @metadata_client.닫기 end true end |
# Decrypt (command) ⇒BSON ::Document
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
데이터베이스 명령 을 해독합니다.
206 207 208 209 210 211 212 |
# 파일 'build/ruby-driver-v2.19/lib/mongo/crypt/auto_encrypter.rb', 줄 206 def 암호 해독(명령) AutoDecryptionContext.신규( @crypt_handle, @encryption_io, 명령 ).run_state_ machine end |
#암호화(database_name, 명령) ⇒ BSON::Document
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
데이터베이스 명령 을 암호화합니다.
192 193 194 195 196 197 198 199 |
# 파일 'build/ruby-driver-v2.19/lib/mongo/crypt/auto_encrypter.rb', 줄 192 def 암호화(database_name, 명령) AutoEncryptionContext.신규( @crypt_handle, @encryption_io, database_name, 명령 ).run_state_ machine end |
#암호화? ⇒ 부울
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
이 암호화기가 암호화 를 수행해야 하는지 여부(:bypass_auto_encryption 옵션이 true로 설정하다 경우 false 반환).
181 182 183 |
# 파일 'build/ruby-driver-v2.19/lib/mongo/crypt/auto_encrypter.rb', 줄 181 def 암호화? !@options[:bypass_auto_encryption] end |