Módulo: Mongo::Socket::OcspCache Privado

Definido en:
lib/mongo/socket/ocsp_cache.rb

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 almacena en caché las respuestas de OCSP durante el tiempo de validez indicado.

La clave es el CertificateId utilizado para la solicitud OCSP. El valor es una OcspVerifier::Response.

Desde:

  • 2.0.0

Resumen del método de clase colapsar

Detalles del método de clase

.clearobjeto

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.

Nota:

Utiliza Mongo.clear_ocsp_cache desde las aplicaciones en lugar de invocar este método directamente.

Limpia la caché de respuestas OCSP del controlador.

Desde:

  • 2.0.0



79
80
81
# Archivo 'lib/mongo/socket/ocsp_cache.rb', línea 79

module_function def borrar
  respuestas.Reemplazar([])
end

.borrar(cert_id) ⇒ Objeto

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.

Desde:

  • 2.0.0



69
70
71
72
73
# Archivo 'lib/mongo/socket/ocsp_cache.rb', línea 69

module_function def borrar(cert_id)
  respuestas.delete_if hacer |resp|
    resp.certid.cmp(cert_id)
  end
end

.get(cert_id) ⇒ OpenSSL::OCSP::SingleResponse

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.

Recupera una SingleResponse en caché para el ID de certificado especificado.

Este método puede devolver respuestas caducadas si se revocan. Dichas respuestas eran válidas cuando se recibieron por primera vez.

Este método también puede devolver respuestas que sean válidas pero que puedan expirar para cuando quien llama las use. El llamador no debe realizar comprobaciones de actualizar la hora en la respuesta proporcionada.

Devuelve:

  • (OpenSSL::OCSP::SingleResponse)

    La respuesta recuperada previamente.

Desde:

  • 2.0.0



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
# Archivo 'lib/mongo/socket/ocsp_cache.rb', línea 42

module_function def Obtener(cert_id)
  resp = respuestas.detectar hacer |resp|
    resp.certid.cmp(cert_id)
  end
  # Solo caducar las respuestas con un buen estado.
  # Una vez que se revoca un certificado, este debe permanecer revocado para siempre.
  # por lo tanto, deberíamos poder almacenar en caché las respuestas revocadas indefinidamente.
  si resp && resp.cert_status == OpenSSL::OCSP::V_CERTSTATUS_GOOD &&
     resp.next_update < Tiempo.ahora
    respuestas.borrar(resp)
    resp = nulo
  end

  # Si nos hemos conectado a un servidor y hemos almacenado en caché la respuesta OCSP para él,
  # y luego nunca vuelva a conectarse a ese servidor, la respuesta OCSP en caché
  # va a permanecer en la memoria indefinidamente. Remover periódicamente todo
  # respuestas OCSP caducadas, no solo las que coinciden con el ID del certificado
  por lo que estamos consultando.
  si rand < 0.01
    respuestas.delete_if hacer |resp|
      resp.next_update < Tiempo.ahora
    end
  end

  resp
end

.respuestasObjeto

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.

Desde:

  • 2.0.0



87
88
89
90
91
# Archivo 'lib/mongo/socket/ocsp_cache.rb', línea 87

module_function def respuestas
  Bloqueo.sincronizar hacer
    @responses ||= []
  end
end

.set(cert_id, response) ⇒ Objeto

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.

Desde:

  • 2.0.0



26
27
28
29
# Archivo 'lib/mongo/socket/ocsp_cache.rb', línea 26

module_function def Configura(cert_id, Respuesta)
  borrar(cert_id)
  respuestas << Respuesta
end