Módulo: Mongo::Socket::OcspCache Private

Definido em:
build/ruby-driver-v2.19/lib/mongo/socket/ocsp_cache.rb

Visão geral

Este módulo faz parte de uma API privada. Você deve evitar usar este módulo, se possível, pois ele pode ser removido ou alterado no futuro.

Este módulo armazena em cache as respostas OCSP pelo tempo de validade indicado.

A chave é o CertificateId usado para a solicitação do OCSP. O valor é a SingleResponse.

Desde:

  • 2.0.0

Recolhimento do Resumo do método de classe

Detalhes do método de classe

.limparObjeto

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Observação:

Use Mongo.clear_ocsp_cache de aplicativos em vez de invocar esse método diretamente.

Limpa o cache de resposta OCSP do driver.

Desde:

  • 2.0.0



84
85
86
# File 'build/ruby-driver-v2.19/lib/mongo/socket/ocsp_cache.rb', linha 84

module_function def Limpar
  Respostas.replace([])
end

.excluir(cert_id) ➤ Objeto

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Desde:

  • 2.0.0



74
75
76
77
78
# File 'build/ruby-driver-v2.19/lib/mongo/socket/ocsp_cache.rb', linha 74

module_function def excluir(cert_id)
  Respostas.delete_if fazer |res|
    res.certid.cmp(cert_id)
  end
end

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

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Recupera uma SingleResponse em cache para o CertificateId especificado.

Este método pode retornar respostas expiradas se forem revogados. Essas respostas foram válidas quando foram recebidas pela primeira vez.

Esse método também pode retornar respostas que são válidas, mas que podem expirar quando o chamador as utilizar. O chamador não deve realizar verificações de tempo de atualização na resposta retornada.

Retorna:

  • (OpenSSL::OCSP::SingleResponse)

    A resposta recuperada anteriormente.

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
# File 'build/ruby-driver-v2.19/lib/mongo/socket/ocsp_cache.rb', linha 44

module_function def obter(cert_id)
  res = Respostas.detectar fazer |res|
    res.certid.cmp(cert_id)
  end
  se res
    # Expira apenas respostas com status bom.
    # Depois de revogado, um certificado deve permanecer revogado para sempre,
    # portanto, devemos ser capazes de armazenar em cache respostas revogadas indefinidamente.
    se res.cert_status == OpenSSL::OCSP::V_CERTSTATUS_good &&
      res.Next_update < Hora.agora
    então
      Respostas.excluir(res)
      res = nada
    end
  end

  # Se tivermos nos conectado a um servidor e armazenado em cache a resposta OCSP para ele,
  # e nunca mais se conecte a esse servidor, a resposta OCSP em cache
  # permanecerá na memória indefinidamente. Remova periodicamente todos
  # respostas OCSP expiradas, não apenas aquelas que correspondem ao ID do certificado
  # pelo qual estamos fazendo query.
  se random < 0.01
    Respostas.delete_if fazer |res|
      res.Next_update < Hora.agora
    end
  end

  res
end

.respostasObjeto

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Desde:

  • 2.0.0



92
93
94
95
96
# File 'build/ruby-driver-v2.19/lib/mongo/socket/ocsp_cache.rb', linha 92

module_function def Respostas
  Bloqueio.sincronizar fazer
    @respostas ||= []
  end
end

.set(cert_id, response) ➤ Objeto

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Desde:

  • 2.0.0



28
29
30
31
# File 'build/ruby-driver-v2.19/lib/mongo/socket/ocsp_cache.rb', linha 28

module_function def set(cert_id, Resposta)
  excluir(cert_id)
  Respostas << Resposta
end