类:Mongo::Auth::User
- 继承:
-
对象
- 对象
- Mongo::Auth::User
- 包括:
- Loggable
- 定义于:
- 构建/ruby-driver-v2.19/lib/ mongo /auth/user.rb 、
构建/ruby-driver-v2.19/lib/ mongo /auth/user/view.rb
Overview
代表MongoDB中的用户。
在命名空间下定义
类: 查看
常量摘要
Loggable中包含的常量
实例属性摘要折叠
-
# auth_mech_properties ⇒ 哈希
只读
身份验证机制属性。
-
# auth_source ⇒ string
只读
授权源,可以是数据库或外部名称。
-
#database ⇒ String
只读
在其中创建用户的数据库。
-
#机制⇒ 符号
只读
授权机制。
-
#名称⇒ string
只读
用户名。
-
#密码⇒ string
只读
明文密码。
-
# roles ⇒ Array<String>
只读
角色 用户角色。
实例方法摘要折叠
-
# == (other) ⇒ true, false
确定此用户是否与另一个用户相同。
-
# auth_key (nonce) ⇒ string
根据服务器的随机数获取用户的身份验证密钥。
-
# Encoded_name ⇒ string
获取带有转义特殊字符的 UTF- 8编码名称,以用于SCRAM授权。
-
#哈希⇒ string
获取用户的哈希键。
-
# hashed_password ⇒ string
获取SCRAM -SHA- 1的用户哈希密码。
-
#initialize (options) ⇒ 用户
构造函数
创建新用户。
-
# options ⇒ 对象
private
Loggable 需要一个选项属性。
-
# sasl_prepped_password ⇒ 对象
private
获取针对 SCRAM-SHA- 256的用户经过字符串准备的密码。
-
# spec ⇒ 哈希
获取创建时使用的用户规范。
Loggable中包含的方法
#log_debug 、 #log_error 、 #log_ Fatal 、 #log_info 、 #log_warn 、 #logger
构造函数详情
#initialize (options) ⇒用户
创建新用户。
163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 |
# File ' 构建/ruby-driver-v2.19/lib/ mongo /auth/user.rb', line 163 def 初始化() @database = [:database] || Database::ADMIN @auth_source = [:auth_source] || self.class.default_auth_source() @name = [: user] @password = [:password] || [:pwd] @chanism = [:auth_mech] if @chanism # 由于驾驶员必须选择身份验证类 # 指定的机制,驾驶员没有的机制 # 了解,但无法转换为身份验证类, # 需要被拒绝。 除非 @chanism.is_a?(符号) # 虽然我们将 auth_mech 选项记录为一个符号,但我们 # 尚未强制执行此操作;在 lint模式警告、拒绝 if Lint.已启用? 提高 错误::LintError, " Auth Mechanism #{ @ Mechanism . Inspect }必须指定为符号" else log_warn(" Auth Mechanism #{ @ Mechanism . Inspect }应指定为符号") @chanism = @chanism.to_sym end end 除非 auth::来源.键?(@chanism) 提高 InvalidMechanism.new([:auth_mech]) end end @auth_mech_properties = [:auth_mech_properties] || {} @roles = [:roles] || [] end |
实例属性详细信息
# auth_mech_properties ⇒哈希(只读)
返回身份验证机制属性。
37 38 39 |
# File ' 构建/ruby-driver-v2.19/lib/ mongo /auth/user.rb', line 37 def auth_mech_properties @auth_mech_properties end |
# auth_source ⇒ string (只读)
返回 授权源,可以是数据库或外部名称。
31 32 33 |
# File ' 构建/ruby-driver-v2.19/lib/ mongo /auth/user.rb', line 31 def auth_source @auth_source end |
#数据库⇒ string (只读)
返回创建用户的数据库。
34 35 36 |
# File ' 构建/ruby-driver-v2.19/lib/ mongo /auth/user.rb', line 34 def database @database end |
#机制⇒符号(只读)
返回授权机制。
40 41 42 |
# File ' 构建/ruby-driver-v2.19/lib/ mongo /auth/user.rb', line 40 def 机制 @chanism end |
# name ⇒ string (readonly)
返回 用户名。
43 44 45 |
# File ' 构建/ruby-driver-v2.19/lib/ mongo /auth/user.rb', line 43 def 名称 @name end |
#密码⇒ string (只读)
返回 明文密码。
46 47 48 |
# File ' 构建/ruby-driver-v2.19/lib/ mongo /auth/user.rb', line 46 def 密码 @password end |
# roles ⇒ Array<String> (只读)
返回角色 用户角色。
49 50 51 |
# File ' 构建/ruby-driver-v2.19/lib/ mongo /auth/user.rb', line 49 def 角色 @roles end |
实例方法详细信息
# == (other) ⇒ true , false
确定此用户是否与另一个用户相同。
69 70 71 72 |
# File ' 构建/ruby-driver-v2.19/lib/ mongo /auth/user.rb', line 69 def ==(其他) return false 除非 其他.is_a?(user) 名称 == 其他.名称 && database == 其他.database && 密码 == 其他.密码 end |
# auth_key (nonce) ⇒ string
根据服务器的随机数获取用户的身份验证密钥。
85 86 87 |
# File ' 构建/ruby-driver-v2.19/lib/ mongo /auth/user.rb', line 85 def auth_key(随机数) 摘要::MD5.hexdigest(" #{ nonce } #{ name } #{ hashed_password } ") end |
# Encoded_name ⇒ string
获取带有转义特殊字符的 UTF- 8编码名称,以用于SCRAM授权。
98 99 100 |
# File ' 构建/ruby-driver-v2.19/lib/ mongo /auth/user.rb', line 98 def Encoded_name 名称.encode(BSON::UTF8).gsub(' = ','=3D').gsub(' , ',' = 2 C ') end |
#哈希⇒ string
获取用户的哈希键。
110 111 112 |
# File ' 构建/ruby-driver-v2.19/lib/ mongo /auth/user.rb', line 110 def 哈希 [ 名称, database, 密码 ].哈希 end |
# hashed_password ⇒ string
获取SCRAM -SHA- 1的用户哈希密码。
122 123 124 125 126 127 128 |
# File ' 构建/ruby-driver-v2.19/lib/ mongo /auth/user.rb', line 122 def hashed_password 除非 密码 提高 错误::MissingPassword end @hashed_password ||= 摘要::MD5.hexdigest(" #{ name } : Mongo: #{ password } ").encode(BSON::UTF8) end |
# options ⇒对象
此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
Loggable 需要一个选项属性。 我们没有任何选项,因此将其作为存根提供。
55 56 57 |
# File ' 构建/ruby-driver-v2.19/lib/ mongo /auth/user.rb', line 55 def {} end |
# sasl_prepped_password ⇒对象
此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
获取针对 SCRAM-SHA- 256的用户经过字符串准备的密码。
133 134 135 136 137 138 139 140 141 142 |
# File ' 构建/ruby-driver-v2.19/lib/ mongo /auth/user.rb', line 133 def sasl_prepped_password 除非 密码 提高 错误::MissingPassword end @sasl_prepped_password ||= StringPrep.准备(密码, StringPrep::个人资料::sasl::mappings, StringPrep::个人资料::sasl::禁止, 规范化: true, bidi: true).encode(BSON::UTF8) end |
# spec ⇒哈希
获取创建时使用的用户规范。
200 201 202 203 204 205 206 |
# File ' 构建/ruby-driver-v2.19/lib/ mongo /auth/user.rb', line 200 def spec {角色: 角色}.点击 do |spec| if 密码 spec[:pwd] = 密码 end end end |