类:Mongo::Auth::ConversationBase Private

继承:
对象
  • 对象
显示全部
定义于:
build/Ruby-driver-v 2.19 /lib/mongo/auth/conversation_base.rb

Overview

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

定义客户端和服务器之间身份验证对话的常见行为。

由于:

  • 2.0.0

实例属性摘要折叠

实例方法摘要折叠

构造函数详情

#initialize (user, connection, **opts) ⇒ ConversationBase

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

创建新对话。

参数:

  • user ( Auth::User )

    要进行身份验证的用户。

  • 连接 ( Mongo::Connection )

    要进行身份验证的连接。

由于:

  • 2.0.0



32
33
34
35
# File ' 构建/ruby-driver-v2.19/lib/ mongo /auth/conversation_base.rb', 第32行

def 初始化(user, 连接, **opts)
  @user = user
  @connection = 连接
end

实例属性详细信息

# connectionMongo::Connection (readonly)

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

返回 要进行身份验证的连接。

返回:

  • ( Mongo::Connection )

    要进行身份验证的连接。

由于:

  • 2.0.0



41
42
43
# File ' 构建/ruby-driver-v2.19/lib/ mongo /auth/conversation_base.rb', 第41行

def 连接
  @connection
end

# userAuth::User (readonly)

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

返回 user 对话的用户。

返回:

由于:

  • 2.0.0



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 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。

返回 要发送的消息。

返回:

由于:

  • 2.0.0



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 build_message(连接, 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。

返回:

  • ( Hash | nil )

    推测性身份验证文档。

由于:

  • 2.0.0



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 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。

由于:

  • 2.0.0



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