类:Mongo::Auth::ConversationBase Private
- 继承:
-
对象
- 对象
- Mongo::Auth::ConversationBase
- 定义于:
- build/Ruby-driver-v 2.19 /lib/mongo/auth/conversation_base.rb
Overview
此类是私有 API 的一部分。 应尽可能避免使用此类,因为它将来可能会被删除或更改。
定义客户端和服务器之间身份验证对话的常见行为。
直接已知子类
Mongo::Auth::CR::Conversation 、 LDAP::Conversation 、 SaslConversationBase 、 X 509 ::Conversation
实例属性摘要折叠
-
# connection ⇒ Mongo::Connection
只读
private
要进行身份验证的连接。
-
# user ⇒ Auth::User
只读
private
用户 对话的用户。
实例方法摘要折叠
-
# build_message (connection, auth_source, 选择器) ="Protocol::Message"
private
要发送的消息。
-
#initialize (user, connection, **opts) ⇒ ConversationBase
构造函数
private
创建新对话。
-
# speculative_auth_document ⇒ 哈希 | nil
private
返回要在握手中作为 speculativeAuthenticate 键的值提供给服务器的哈希值。
- # validate_external_auth_source ⇒ 对象 private
构造函数详情
#initialize (user, connection, **opts) ⇒ ConversationBase
此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
创建新对话。
32 33 34 35 |
# File ' 构建/ruby-driver-v2.19/lib/ mongo /auth/conversation_base.rb', 第32行 def 初始化(user, 连接, **opts) @user = user @connection = 连接 end |
实例属性详细信息
# connection ⇒ Mongo::Connection (readonly)
此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
返回 要进行身份验证的连接。
41 42 43 |
# File ' 构建/ruby-driver-v2.19/lib/ mongo /auth/conversation_base.rb', 第41行 def 连接 @connection end |
# user ⇒ Auth::User (readonly)
此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
返回 user 对话的用户。
38 39 40 |
# File ' 构建/ruby-driver-v2.19/lib/ mongo /auth/conversation_base.rb', 第38行 def user @user end |
实例方法详细信息
#build_message(connection, auth_source, selector) ⇒ Protocol::Message
此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
返回 要发送的消息。
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 /auth/conversation_base.rb', 第55行 def (连接, auth_source, 选择器) if 连接 && 连接.功能.op_msg_enabled? 选择器 = 选择器.dup 选择器[protocol::消息::DATABASE_IDENTIFIER] = auth_source cluster_time = 连接.mongos? && 连接.cluster_time if cluster_time 选择器[操作::CLUSTER_TIME] = cluster_time end protocol::消息.new([], {}, 选择器) else protocol::查询.new( auth_source, Database::命令, 选择器, limit: -1, ) end end |
# speculative_auth_document ⇒哈希 | nil
此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
返回要在握手中作为 speculativeAuthenticate 键的值提供给服务器的哈希值。
如果身份验证机制不支持推测性身份验证,则此方法返回 nil。
50 51 52 |
# File ' 构建/ruby-driver-v2.19/lib/ mongo /auth/conversation_base.rb', 第50行 def speculative_auth_document nil end |
# validate_external_auth_source ⇒对象
此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
74 75 76 77 78 79 80 81 82 83 84 |
# File ' 构建/ruby-driver-v2.19/lib/ mongo /auth/conversation_base.rb', 第74行 def validate_external_auth_source if user.auth_source != ' $external ' user_name_msg = if user.名称 " #{ user .名称} " else ' ' end 机制 = user.机制 提高 auth::InvalidConfiguration, " 用户 #{ user_name_msg } 指定了身份验证源 ' #{ user . auth_source } ',但 #{ 机制 } 的唯一有效身份验证源 是 '$external' " end end |