类:Mongo::Auth::Gssapi::Conversation Private

继承:
SaslConversationBase 显示全部
定义于:
build/Ruby-driver-v 2.19 /lib/mongo/auth/gssapi/conversation.rb

Overview

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

定义围绕客户端和服务器之间的单个Kerberos对话的行为。

由于:

  • 2.0.0

常量摘要折叠

START_MESSAGE =

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

基本客户端第一条消息。

由于:

  • 2.0.0

{ saslStart: 1, autoAuthorize: 1 }.冻结
CONTINUE_MESSAGE =

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

基本客户端继续消息。

由于:

  • 2.0.0

{ saslContinue: 1 }.冻结

SaslConversationBase继承的常量

SaslConversationBase::CLIENT_CONTINUE_MESSAGESaslConversationBase::CLIENT_FIRST_MESSAGE

实例属性摘要折叠

ConversationBase继承的属性

#connection , #user

实例方法摘要折叠

SaslConversationBase继承的方法

#start

ConversationBase继承的方法

#build_message#speculative_auth_document#validate_external_auth_source

构造函数详情

#initialize (user, connection, **opts) ⇒对话

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

创建新对话。

例子:

创建新对话。

Conversation.new(user, 'test.example.com')

参数:

  • user ( Auth::User )

    要交谈的用户。

  • 连接 ( Mongo::Connection )

    要进行身份验证的连接。

由于:

  • 2.0.0



44
45
46
47
48
49
50
51
52
53
54
55
56
# File 'build/Ruby-driver-v 2.19 /lib/mongo/auth/gssapi/conversation.rb', 第44行

def 初始化(user, 连接, **opts)
  
  主机 = 连接.地址.主机
  除非 定义?(mongo::GssapiNative)
    require 'mongo_kerberos'
  end
  @authenticator = mongo::GssapiNative::Authenticator.new(
    user.名称,
    主机,
    user.auth_mech_properties[:service_name] || 'mongodb',
    user.auth_mech_properties[:canonicalize_host_name] || false,
  )
end

实例属性详细信息

#身份验证器 ⇒身份验证(只读)

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

返回身份验证器原生SASL 身份验证器。

返回:

  • 身份验证器

    身份验证器原生SASL 身份验证器。

由于:

  • 2.0.0



59
60
61
# File 'build/Ruby-driver-v 2.19 /lib/mongo/auth/gssapi/conversation.rb', 第59行

def 身份验证器
  @authenticator
end

# ID =" Integer " (只读)

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

获取对话的 ID。

返回:

  • ( Integer )

    会话 ID。

由于:

  • 2.0.0



64
65
66
# File 'build/Ruby-driver-v 2.19 /lib/mongo/auth/gssapi/conversation.rb', 第64行

def id
  @id
end

实例方法详细信息

# client_first_document对象

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

由于:

  • 2.0.0



66
67
68
69
# File 'build/Ruby-driver-v 2.19 /lib/mongo/auth/gssapi/conversation.rb', 第66行

def client_first_document
  start_token = 身份验证器.initialize_challenge
  START_MESSAGE.合并(merge)(机制: GSSAPI::机制, 有效负载: start_token)
end

#continue(reply_document, connection) ⇒ Protocol::Message

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

继续对话。

参数:

  • reply_document ( BSON::Document )

    上一条消息的回复文档。

返回:

由于:

  • 2.0.0



77
78
79
80
81
82
83
84
# File 'build/Ruby-driver-v 2.19 /lib/mongo/auth/gssapi/conversation.rb', 第77行

def 继续(reply_document, 连接)
  @id = reply_document[' sessionId ']
  有效负载 = reply_document[' payload ']

  continue_token = 身份验证器.评估_挑战(有效负载)
  选择器 = CONTINUE_MESSAGE.合并(merge)(有效负载: continue_token, sessionId: id)
  build_message(连接, ' $external ', 选择器)
end

#finalize(connection) ⇒ Protocol::Message

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

返回 要执行的下一个查询。

返回:

由于:

  • 2.0.0



93
94
95
96
# File 'build/Ruby-driver-v 2.19 /lib/mongo/auth/gssapi/conversation.rb', 第93行

def finalize(连接)
  选择器 = CONTINUE_MESSAGE.合并(merge)(有效负载: @continue_token, sessionId: id)
  build_message(连接, ' $external ', 选择器)
end

# process_Continue_response (reply_document) ⇒对象

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

由于:

  • 2.0.0



86
87
88
89
90
# File 'build/Ruby-driver-v 2.19 /lib/mongo/auth/gssapi/conversation.rb', 第86行

def process_Continue_response(reply_document)
  有效负载 = reply_document[' payload ']

  @continue_token = 身份验证器.评估_挑战(有效负载)
end