类:Mongo::Crypt:: KMS:: GCP::Credentials Private
- 继承:
-
对象
- 对象
- Mongo::Crypt::KMS::GCP::Credentials
- 扩展方式:
- 可转发
- 包括:
- 验证
- 定义于:
- build/Ruby-driver-v2.19/lib/ mongo /crypt/ KMS / GCP /credentials.rb
Overview
此类是私有 API 的一部分。 应尽可能避免使用此类,因为它将来可能会被删除或更改。
GCP Cloud Key Management Credentials对象包含使用GCP KMS提供商的凭证。
常量摘要折叠
- FORMAT_HINT =
此常量是私有 API 的一部分。 应尽可能避免使用此常量,因为它将来可能会被删除或更改。
" GCP KMS 提供商选项必须采用以下格式: " + "{ email: 'EMAIL', private_key: 'PRIVATE-KEY' }"
实例属性摘要折叠
-
#access_token ⇒ String | nil
只读
private
GCP 访问令牌。
-
# 电子邮件 ⇒ string
只读
private
用于进行身份验证的 GCP 电子邮件。
-
#端点⇒ string | nil
只读
private
GCP KMS 端点。
-
# private_key ⇒ string
只读
private
GCP私钥,基本64编码的 DER 格式。
实例方法摘要折叠
-
#initialize (opts) ⇒ 档案
构造函数
private
从参数哈希中创建 GCP KMS 凭证对象。
-
# to_document ⇒ BSON::Document
private
将凭证对象转换为 libmongocrypt 格式的BSON文档。
验证中包含的方法
#validate_param , validate_tls_options
构造函数详情
#initialize (opts) ⇒档案
此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
从参数哈希中创建 GCP KMS 凭证对象。
61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 |
# File ' 构建/ruby-driver-v2.19/lib/ mongo /crypt/ KMS / GCP / 凭证.rb', 第61行 def 初始化(opts) @opts = opts return if 空? if opts[:access_token] @access_token = opts[:access_token] else @email = validate_param(:email, opts, FORMAT_HINT) @private_key = 开始 private_key_opt = validate_param(:private_key, opts, FORMAT_HINT) if BSON::environment.jRuby? # 我们无法真正在 JRuby 上验证私钥,因此我们假设 # 采用基本64编码的 DER 格式。 private_key_opt else # 检查私钥是否为 PEM 格式。 pkey = OpenSSL::PKey::RSA.new(private_key_opt) # 是 PEM,需要转换为基本64编码的 DER。 der = if pkey.respond_to?(:private_to_der) pkey.private_to_der else pkey.to_der end Base64.对64进行编码(der) end 救援 OpenSSL::PKey::RSAError # 检查私钥是否在 DER 中。 开始 OpenSSL::PKey.读(Base64.解码64(private_key_opt)) # 私钥很好,使用它。 private_key_opt 救援 OpenSSL::PKey::PKeyError 提高 ArgumentError.new( " private_key 选项必须是基本64编码的 DER 格式或 PEM 格式。 " ) end end @endpoint = validate_param( :endpoint, opts, FORMAT_HINT, 必需: false ) end end |
实例属性详细信息
# access_token ⇒ string | nil (只读)
此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
返回 GCP 访问令牌。
40 41 42 |
# File ' 构建/ruby-driver-v2.19/lib/ mongo /crypt/ KMS / GCP / 凭证.rb', 第40行 def access_token @access_token end |
# email ⇒ string (readonly)
此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
返回用于进行身份验证的GCP电子邮件。
31 32 33 |
# File ' 构建/ruby-driver-v2.19/lib/ mongo /crypt/ KMS / GCP / 凭证.rb', 第31行 def 电子邮件 @email end |
#端点⇒ string | nil (只读)
此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
返回GCP KMS端点。
37 38 39 |
# File ' 构建/ruby-driver-v2.19/lib/ mongo /crypt/ KMS / GCP / 凭证.rb', 第37行 def 端点 @endpoint end |
# private_key ⇒ string (只读)
此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
返回采用基本64编码的 DER 格式的 GCP 私钥。
34 35 36 |
# File ' 构建/ruby-driver-v2.19/lib/ mongo /crypt/ KMS / GCP / 凭证.rb', 第34行 def PRIVATE_KEY @private_key end |
实例方法详细信息
# to_document ⇒ BSON::Document
此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
将凭证对象转换为 libmongocrypt 格式的BSON文档。
108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 |
# File ' 构建/ruby-driver-v2.19/lib/ mongo /crypt/ KMS / GCP / 凭证.rb', 第108行 def to_document return BSON::文档.new if 空? if access_token BSON::文档.new({ accessToken: access_token }) else BSON::文档.new({ 电子邮件: 电子邮件, privateKey: BSON::二进制文件.new(PRIVATE_KEY, :generic), }).点击 do |bson| 除非 端点.nil? bson.update({ 端点: 端点 }) end end end end |