模块:Mongo::Socket::OcspCache Private

定义于:
构建/ruby-driver-v2.19/lib/ mongo /socket/ocsp_cache.rb

Overview

该模块是私有 API 的一部分。 您应尽可能避免使用此模块,因为它将来可能会被删除或更改。

该模块会在指定的有效时间内缓存 OCSP 响应。

密钥是用于 OCSP请求的 CertificateId。 该值为 SingleResponse。

由于:

  • 2.0.0

类方法摘要折叠

类方法详细信息

清除对象

此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。

注意:

使用应用程序中的 Mongo.clear_ocsp_cache,而不是直接调用此方法。

清除驱动程序的 OCSP 响应缓存。

由于:

  • 2.0.0



84
85
86
# File ' 构建/ruby-driver-v2.19/lib/ mongo /socket/ocsp_cache.rb', 第84行

module_function def 清除
  响应.替换([])
end

删除(cert_id) ⇒对象

此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。

由于:

  • 2.0.0



74
75
76
77
78
# File ' 构建/ruby-driver-v2.19/lib/ mongo /socket/ocsp_cache.rb', 第74行

module_function def 删除(cert_id)
  响应.delete_if do |resp|
    resp.certid.cmp(cert_id)
  end
end

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

此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。

检索指定 CertificateId 的已缓存 SingleResponse。

如果响应被撤销,此方法可能会返回过期响应。 此类回复在首次收到时有效。

此方法还可能返回有效的响应,但这些响应可能在调用者使用它们时过期。 调用者不应对返回的响应执行更新时间检查。

返回:

  • ( OpenSSL::OCSP::SingleResponse )

    之前检索到的响应。

由于:

  • 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 ' 构建/ruby-driver-v2.19/lib/ mongo /socket/ocsp_cache.rb', 第44行

module_function def 获取(cert_id)
  resp = 响应.检测 do |resp|
    resp.certid.cmp(cert_id)
  end
  if resp
    # 仅使状态良好的响应过期。
    # 证书一旦被撤销,就应永远保持撤销状态,
    # 因此,我们应该能够无限期缓存已撤销的响应。
    if resp.cert_status == OpenSSL::OCSP::V_CERTSTATUS_GOOD &&
      resp.next_update < 时间.now
    then
      响应.删除(resp)
      resp = nil
    end
  end

  # 如果我们已连接到服务器并为其缓存 OCSP 响应,
  # 然后不再连接到该服务器,缓存的 OCSP 响应
  # 将无限期地保留在内存中。 定期删除所有
  # 过期的 OCSP 响应,而不仅仅是与证书 ID 匹配的响应
  # 我们正在查询。
  if 兰特 < 0.01
    响应.delete_if do |resp|
      resp.next_update < 时间.now
    end
  end

  resp
end

响应对象

此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。

由于:

  • 2.0.0



92
93
94
95
96
# File ' 构建/ruby-driver-v2.19/lib/ mongo /socket/ocsp_cache.rb', 第92行

module_function def 响应
  .同步 do
    @responses ||= []
  end
end

设立 (cert_id, response) ⇒对象

此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。

由于:

  • 2.0.0



28
29
30
31
# File ' 构建/ruby-driver-v2.19/lib/ mongo /socket/ocsp_cache.rb', 第28行

module_function def (cert_id, 响应)
  删除(cert_id)
  响应 << 响应
end