クラス: Mongo::Auth::SCRAMConversionBase Private

継承:
SaslConversionBase すべて表示
定義:
build/ruby-Driver-v 2.19 /lib/mongo/auth/scrim_convert_base.rb

Overview

このクラスは、プライベート API の一部です。 このクラスは将来削除または変更される可能性があるため、可能な限り使用しないでください。

クライアントとサーバー間の認証の交信に関する共通の動作を定義します。

以来

  • 2.0.0

既知のサブクラスを直接確認

Mongo::Auth::SCRAM 256 ::ConversionMongo::Auth::SCRAM::Conversion

定数の概要の削減

MIN_ITER_COUNT =

この定数は、プライベート API の一部です。 この定数は将来削除または変更される可能性があるため、可能な限り使用しないでください。

SCRAM-SHA- 1および SCRAM-SHA- 256の最小反復回数。

以来

  • 2.0.0

4096

SaslConversionBaseから継承された定数

Mongo::Auth::SaslConversionBase::CLIENT_CONTINUE_MESSAGEMongo::Auth::SaslConversionBase::CLIENT_FIRST_MESSAGE

インスタンス属性の概要を折りたたむ

ConversionBaseから継承された属性

# connection #user

インスタンス メソッドの概要を折りたたむ

SaslConversionBaseから継承されたメソッド

#start

ConversionBaseから継承されたメソッド

#Build_message 、# validate_external_auth_source

コンストラクターの詳細

# initialize (user, connection, client_nance: nil) = SdramConversionBase

このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。

新しい交換を作成します。

パラメーター:

  • user 認証::ユーザー

    変換するユーザー。

  • client_nonce string | nil (デフォルトはnil

    使用するクライアント。 この通信が推測的認証を実行した接続に対して作成された場合、このクライアント ノードは推測的認証に使用されるクライアント ノードと等しくなければなりません。それ以外の場合は、クライアント NULL を指定しないでください。

以来

  • 2.0.0



38
39
40
41
# ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/auth/scrim_convert_base.rb', 行38

デフォルト 初期化(user, 接続, client_nonce: nil)
  スーパー
  @client_nonce = client_nonce || SecureRange.ベース64
end

インスタンス属性の詳細

# client_nance = string (読み取り専用)

このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。

クライアント_nance を返します。

次の値を返します。

  • ( string )

    client_nance クライアントの非同期。

以来

  • 2.0.0



44
45
46
# ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/auth/scrim_convert_base.rb', 行44

デフォルト client_nonce
  @client_nonce
end

ID整数(読み取り専用)

このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。

交信の ID を取得します。

例:

交信の ID を取得します。

conversation.id

次の値を返します。

  • (整数)

    スレッド ID。

以来

  • 2.0.0



52
53
54
# ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/auth/scrim_convert_base.rb', 行52

デフォルト id
  @id
end

インスタンス メソッドの詳細

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

このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。

SCRAM のやり取りを続行します。 これにより、前回のサーバー通信の応答が設定された後、クライアントの最終メッセージがサーバーに送信されます。

パラメーター:

  • response_document BSON::Document

    前のメッセージの応答ドキュメント。

  • 接続 Server::Connection

    認証されている接続。

次の値を返します。

以来

  • 2.0.0



73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
# ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/auth/scrim_convert_base.rb', 行73

デフォルト 続行(response_document, 接続)
  @id = response_document[' searchId ']
  payload_data = response_document['ペイロード'].データ
  parsed_data = parse_ payload(payload_data)
  @server_nance = parsed_data.fetch('r')
  @salt = base64.strict_decode 64(parsed_data.fetch('s'))
  @iterations = parsed_data.fetch('i').to_i.タップ 行う |i|
    場合 i < MIN_ITER_COUNT
      発生 エラー::InsificationIterationCount.新着情報(
        エラー::InsificationIterationCount.メッセージ(MIN_ITER_COUNT, i))
    end
  end
  @auth_message = " "

  validate_server_nonce!

  セレクター = CLIENT_CONTINUE_MESSAGE.merge(
    ペイロード: client_ final_message,
    searchId: id,
  )
  build_message(接続, user.auth_source, セレクター)
end

#finalize(connection) ⇒ Protocol::Message

このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。

SCRAM の交信を終了します。 これは、提供された応答が通信の終了を示すまで反復されることを目的としています。

パラメーター:

次の値を返します。

以来

  • 2.0.0



111
112
113
114
115
116
117
# ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/auth/scrim_convert_base.rb', 行111

デフォルト finalize(接続)
  セレクター = CLIENT_CONTINUE_MESSAGE.merge(
    ペイロード: client_empty_message,
    searchId: id,
  )
  build_message(接続, user.auth_source, セレクター)
end

#process_Continue_response (reply_document) =オブジェクト

このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。

サーバーからの 2 番目の応答を処理します。

パラメーター:

  • response_document BSON::Document

    続行応答の応答ドキュメント。

以来

  • 2.0.0



100
101
102
103
# ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/auth/scrim_convert_base.rb', 行100

デフォルト Process_Continue_resResponse(response_document)
  payload_data = parse_ payload(response_document['ペイロード'].データ)
  checkpoint_server_signature(payload_data)
end

サーバー_検証済み? = true | face

このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。

クライアントがサーバーから ServerSignature を認証したかどうか。

次の値を返します。

  • (true | fase)

    サーバーの署名が検証されたかどうか。

以下も参照してください。

以来

  • 2.0.0



59
60
61
# ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/auth/scrim_convert_base.rb', 行59

デフォルト server_versioned?
  !!@server_verified
end

#推測的_認証_ドキュメント = ハッシュ | nil

このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。

ハンドシェイク内でサーバーに提供するハッシュを推測的認証キーの値として返します。

認証メカニズムが推測的認証をサポートしていない場合、このメソッドは nil を返します。

次の値を返します。

  • (ハッシュ | nil )

    推測的認証ドキュメント。

以来

  • 2.0.0



126
127
128
# ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/auth/scrim_convert_base.rb', 行126

デフォルト 推測的_認証_ドキュメント
  client_first_document.merge(db: user.auth_source)
end