모듈: Mongo::Crypt::KMS::Validations Private

개요

이 모듈은 비공개 API의 일부입니다. 이 모듈은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.

이 모듈에는 KMS 매개변수의 유효성을 검사하기 위한 헬퍼 메서드가 포함되어 있습니다.

클래스 메서드 요약 접기

인스턴스 메서드 요약 접기

클래스 메서드 세부 정보

.validate_tls_options(options) ⇒ Hash

이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.

KMS TLS 옵션의 유효성을 검사합니다.

매개변수:

  • 옵션 (Hash | nil)

    KMS 제공자에 연결하기 위한 TLS 옵션. 해시의 키는 KSM 제공자 이름이어야 합니다. 값은 TLS 연결 옵션의 해시여야 합니다. 이 옵션은 Mongo::Client의 TLS 연결 옵션과 동일합니다.

반환합니다:

  • (해시)

    유효한 경우 TLS 옵션을 제공했습니다.

다음을 발생시킵니다.

  • (ArgumentError)

    필수 옵션이 누락되었거나 형식이 잘못된 경우.



96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
# 파일 'lib/ Mongo/crypt/kms.rb', 96줄

def validate_tls_options(옵션)
  opts = 옵션 || {}
  opts. do |provider, provider_opts|
    만약 provider_opts[:ssl] == 거짓 || opts[: tls] == 거짓
      올리다 ArgumentError.신규(
        "Incorrect TLS options for #{제공자}: TLS is requires"
      )
    end
    %i[
      ssl_verify_certificate
      ssl_verify_hostname
    ]. do |opt|
      다음 하지 않는 한 provider_opts[opt] == 거짓

      올리다 ArgumentError.신규(
        "#{provider}에 대한 잘못된 TLS 옵션: " +
        '안전하지 않은 TLS 옵션 금지, ' +
        "#{opt} 는 KMS에 대해 false로 설정할 수 없습니다"
      )
    end
  end
  opts
end

인스턴스 메서드 세부 정보

#validate_param(키, 옵션, format_hint, 필수: true) ⇒ string | nil

이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.

KMS 매개변수가 유효한지 확인합니다.

매개변수:

  • (기호)

    매개변수 이름입니다.

  • opts (해시)

    해시는 키 아래에 매개변수를 포함해야 합니다.

  • 필수 (부울) (기본값: true)

    매개변수가 필수인지 여부입니다. 필수가 아닌 매개변수는 nil일 수 있습니다.

반환합니다:

  • (string | nil)

    string 매개변수 값을 반환하거나, 필수가 아닌 매개변수가 누락된 경우 nil을 반환합니다.

다음을 발생시킵니다.

  • (ArgumentError)

    필수 옵션이 누락되었거나 형식이 잘못된 경우.



53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
# 파일 'lib/ Mongo/crypt/kms.rb', 53줄

def validate_param(, opts, format_hint, 필수: true)
  value = opts.가져오기()
  반환 nil 만약 value.nil? && !필수

  만약 value.nil?
    올리다 ArgumentError.신규(
      " #{key} 옵션은 최소 하나 이상의 문자를 포함하는 String이어야 합니다. " \
      '현재 nil이 있습니다.'
    )
  end
  unless value.is_a?(String)
    raise ArgumentError.new(
      " #{key}  옵션은 최소 하나 이상의 문자를 포함하는 string이어야 합니다. " \
      " 현재#{value} ")
     
  end
  if value. empty?
    raise ArgumentError.new(
      " #{key}  옵션은 최소 하나 이상의 문자를 포함하는 string이어야 합니다. " \' 현재 빈
    문자열입니다.')
  end
  value
rescue KeyError
  if required
    raise ArgumentError. new(
      "지정된 KMS 제공자 옵션이 유효하지 않습니다: #{opts}. " +
      format_hint
    )
  end
end