Módulo: Mongo::Crypt::KMS::Validations Privado

Overview

Este módulo es parte de una API privada. Deberías evitar usar este módulo si es posible, ya que puede ser removido o cambiado en el futuro.

Este módulo contiene métodos asistentes para validar los parámetros de KMS.

Resumen del método de clase colapsar

Resumen del método de instancia colapsar

Detalles del método de clase

.validate_tls_options(options) ⇒ Hash

Este método es parte de una API privada. Se debe evitar el uso de este método si es posible, ya que podría eliminarse o modificarse en el futuro.

Validar opciones de KMS TLS.

Parámetros:

  • opciones (Hash | nil)

    Opciones de TLS para conectarse a los proveedores de KMS. Las claves del hash deben ser nombres de los proveedores de KSM; los valores deben ser hashes de opciones de conexión TLS. Las opciones son equivalentes a las opciones de conexión TLS de Mongo::Client.

Devuelve:

  • (encriptada)

    Se proporcionaron las opciones de TLS si son válidas.

Aumenta:

  • (ArgumentError)

    Si faltan las opciones requeridas o están formateadas incorrectamente.



85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
# Archivo 'lib/mongo/crypt/kms.rb', línea 85

def validate_tls_options(opciones)
  opciones = opciones || {}
  opciones.cada hacer |Proveedor, provider_opts|
    si provider_opts[:ssl] == false || opciones[:tls] == false
      propagar ArgumentError.Nuevo(
        "Opciones incorrectas de TLS para #{proveedor}: Se requiere TLS"
      )
    end
    %i[
      ssl_verify_certificate
      ssl_verify_hostname
    ].cada hacer |opt|
      Next a menos que provider_opts[opt] == false

      propagar ArgumentError.Nuevo(
        "Opciones de TLS incorrectas para #{proveedor}: " +
        'Opciones TLS inseguras prohibidas, ' +
        "#{opt} no se puede establecer en falso para KMS"
      )
    end
  end
  opciones
end

Detalles del método de instancia

#validate_param(key, opts, format_hint, required: true) ⇒ String | nil

Este método es parte de una API privada. Se debe evitar el uso de este método si es posible, ya que podría eliminarse o modificarse en el futuro.

Validar si un parámetro de KMS se considera válido.

Parámetros:

  • llave (Símbolo)

    El nombre del parámetro.

  • opciones (encriptada)

    Hash debe contener el parámetro bajo la clave.

  • Requerido (booleano) (por defecto: true)

    Si el parámetro es obligatorio o no. Los parámetros no requeridos pueden ser nulos.

Devuelve:

  • (String | nil)

    Valor del parámetro string o nil si falta un parámetro no requerido.

Aumenta:

  • (ArgumentError)

    Si faltan las opciones requeridas o están formateadas incorrectamente.



42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
# Archivo 'lib/mongo/crypt/kms.rb', línea 42

def validate_param(llave, opciones, sugerencia de formato, obligatorio: true)
  Valor = opciones.obtener(llave)
  return nulo si Valor.nil? && !Requerido

  si Valor.nil?
    propagar ArgumentError.Nuevo(
      "La opción #{key} debe ser un String con al menos un carácter; " \
      'actualmente tiene nil'
    )
  fin
  a menos que valor.is_a?(String)
    raise ArgumentError.new(
      "La opción #{clave} debe ser una string con al menos un carácter; " \
      "actualmente tiene #{valor}"
    )
  fin
  si valor.está vacío?
    Generar ArgumentError.new(
      "La opción #{clave} debe ser una String con al menos un carácter; " \
      'actualmente es una string vacía'
    )
  fin
  valor
rescate ErrorClave
  si requerido
    lanzar ErrorArgumento.nuevo(
      "Las opciones de Proveedores KMS especificadas no son válidas: #{opts}. " +
      format_hint
    )
  end
end