Módulo: Mongo::Socket::OcspCache privado

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

Overview

Este módulo forma parte de una API privada. Debe evitar su uso siempre que sea posible, ya que podría eliminarse o modificarse en el futuro.

Este módulo almacena en caché las respuestas OCSP durante el tiempo de validez indicado.

La clave es el ID del certificado utilizado para la solicitud OCSP. El valor es la respuesta única.

Desde:

  • 2.0.0

Colapso delresumen del método de clase

Detalles del método de clase

.claroObjeto

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

Nota:

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

Borra la caché de respuesta OCSP del controlador.

Desde:

  • 2.0.0



84
85
86
# Archivo 'lib/mongo/socket/ocsp_cache.rb', línea 84

module_function def borrar
  respuestas.Reemplazar([])
end

.eliminar(cert_id) ⇒ Objeto

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

Desde:

  • 2.0.0



74
75
76
77
78
# Archivo 'lib/mongo/socket/ocsp_cache.rb', línea 74

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

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

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

Recupera una SingleResponse almacenada en caché para el CertificateId 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 válidas, pero que podrían caducar cuando el usuario las use. El usuario no debe realizar comprobaciones de tiempo de actualización en la respuesta devuelta.

Devuelve:

  • (OpenSSL::OCSP::SingleResponse)

    La respuesta recuperada previamente.

Desde:

  • 2.0.0



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/socket/ocsp_cache.rb', línea 44

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

  # Si nos hemos conectado a un servidor y hemos almacenado en caché la respuesta OCSP para él,
  # y luego nunca más se conecta a ese servidor, la respuesta OCSP almacenada en caché
  # permanecerá en la memoria indefinidamente. Elimine periódicamente todos los
  # respuestas OCSP vencidas, no solo las que coinciden con el ID del certificado
  #estamos consultando por.
  Si rand < 0.01
    respuestas.eliminar_si hacer |resp|
      resp.next_update < Tiempo.ahora
    end
  end

  resp
end

.respuestasObjeto

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

Desde:

  • 2.0.0



92
93
94
95
96
# Archivo 'lib/mongo/socket/ocsp_cache.rb', línea 92

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

.set(cert_id, respuesta) ⇒ Objeto

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

Desde:

  • 2.0.0



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

module_function def conjunto(cert_id, respuesta)
  borrar(cert_id)
  respuestas << respuesta
end