クラス: Mongo::URI
- 継承:
-
オブジェクト
- オブジェクト
- Mongo::URI
- 次のことが含まれます。
- アドレス::Validator 、ログ可能
- 定義:
- lib/mongo/uri.rb
、lib/mongo/uri/srv_protocol.rb、lib/mongo/uri/options_mapper.rb
Overview
URI クラスは、ユーザーがMongoDB 接続string 形式の仕様 で定義されている URI を解析する方法を提供します。
https://www.mongodb.com/ja-jp/docs/manual/ 参照/ connection-string/
名前空間で定義済み
クラス: OptionsMapper 、 SRVProtocol
定数の概要の削減
- SCHEME =
非推奨。
3.0で削除されます。
MongoDB接続stringスキーム。
'mongodb://'- MONGODB_SCHEME =
MongoDB接続stringスキーム ルート。
'mongodb'- MONGODB_SRV_SCHEME =
MongoDB srv プロトコル接続stringスキーム ルート。
'mongodb+srv'- INVALID_SCHEME =
非推奨。
無効なスキームのエラーの詳細。
"無効なスキーム。スキームは " #{ MONGODB_SCHEME } " または " #{ MONGODB_SRV_SCHEME } ]である必要があります- FORMAT =
MongoDB URI 形式の仕様。
' MongoDB ://[username:password@]host1[:port1][,host2[:port2] ' + ',...[,hostN[:portN]]][/[データベース][?options]]'
- ヘルプ =
MongoDB URI(接続string )ドキュメントURL
'https://www.mongodb.com/ja-jp/docs/manual/ 参照/ connection-string/'- 安全ではない =
URL でエンコードする必要がある文字は安全ではありません。
%r{[:/@]}- PERCENT_CHAR =
ユーザー認証でエンコードする必要があるパーセント記号。
/%/- UNIX_SOCKET =
Unix ソケットのサフィックス。
/.sock/- HOST_DELim =
ホストを区切る文字。
','- HOST_PART_DELim =
ホストとポートを区切る文字。
':'- DATABASE_DELim =
データベースを区切る文字。
'/'- URI_OPTS_DELIM =
オプションを区切る文字。
'?'- INDIV_URI_OPTS_DELIM =
非推奨。
複数のオプションを区切る文字。
'&'- URI_OPTS_VALUE_DELIM =
オプションとその値を区切る文字。
'='- AUTH_USER_PWD_DELim =
ユーザー名とパスワードを区切る文字。
':'- AUTH_DELim =
認証資格情報を区切る文字。
'@'- SCHEME_DELim =
スキーム区切り文字。
'://'- CREDENTIALS_PLACEHOLDER =
URIが表示、ログ記録、またはエラーレポート作成のためにレンダリングされる場合に、クリアテキスト認証情報の代わりに使用されるプレースホルダー。
'<credentials>'- USERINFO_REDACTION_REGEX =
MongoDB 接続文字列の userinfo ポーションのパスワードなし一致。先頭にアンカーが設定され、権限コンポーネントにバウンドされます(最初の '/'、'?'、'#' で停止)が、そのコンポーネントの最後の '@' までは欲張りに一致するため、エスケープされていない '@' を含むパスワードは引き続き完全に隠されます。大文字と小文字を区別しないため、'MongoDB://' のような特殊なスキームも隠されます。パーサーはこれを拒否し、レダクターは結果のエラーで認証情報が漏えるようなものであってはなりません。
%r{\A(mongodb(?:\+srv)?://)[^/?#]*@}i.freeze
- INVALID_OPTS_VALUE_DELim =
無効なオプション形式のエラーの詳細。
' オプションとその値は区切る必要があります ' + " by ' { { URI_OPTS_VALUE_DELim } に よる '
- UTES_USER_PWD =
URL エンコードされていないユーザー名またはパスワードのエラーの詳細。
'ユーザー名とパスワードは URL エンコードする必要があります。'- UTES_UNIX_SOCKET =
URL がエンコードされていない Unix ソケット パスのエラーの詳細。
'UNIX ドメイン ソケットは URL エンコードする必要があります。'- UTES_DATABASE =
認証データベース名が null でない場合のエラーの詳細。
'認証データベースはURL でエンコードする必要があります。'- INVALID_OPTS_DELim =
データベース区切り文字なしでオプションを提供する際のエラーの詳細。
オプションが指定されている場合は、 データベース区切り文字 ' # { DATABASE_DELim } ' が存在する必要があり ます 。- INVALID_HOST =
欠落しているホストのエラーの詳細。
'欠落しているホスト。少なくとも 1 つを提供する必要があります。'- INVALID_port =
無効なポートのエラーの詳細。
'ポートが無効です。ポートは 0 より大きく 65536 より小さい整数である必要があります'- READ_MODE_MAP =
URI 読み込み設定 (read preference) モードから Ruby ドライバー読み込み設定 (read preference) モードへのマップ
{ 'プライマリ' => : プライマリ, 'プライマリ優先' => :primary_preferred, 'セカンダリ' => :secondary, 'セカンダリ' => :secondary_preferred, 「最も近い」 => :nearest }.freeze
- AUTH_MECH_MAP =
Ruby ドライバー メカニズムへの URI 認証メカニズムのマップ
{ 'GSSAPI' => :gssapi, 'MONGODB-AWS' => :aws, #MONGODB-CR は非推奨であり、ドライバー バージョン3.0で削除されます 'MONGODB-CR' => :mongodb_CR, 'MONGODB-X509' => :mongodb_x 509, 'PLAIN' => :lain, 「 SCRAM-SHA- 1 」 => :SCRAM, 「 SCRAM-SHA- 256 」 => :SCRAM 256, }.freeze
- SERVER_MONITORING_MODES =
serverMonitoringMode URI オプションの有効な値。
%w[ストリーム ポーリング auto].freeze
- REPATEABLE_OPTIONS =
URI 内に複数回使用することが許可されるオプション。
「tls」と「ssl」のすべてのインスタンスが同じ値を持つという URI オプション仕様の要件に従うには、それらのオプションに対して渡されるすべての値を追跡する必要があります。これらが競合しないと仮定すると、URI を解析した後すぐに 1 つの値に圧縮されます。
%i[tags_sets ssl]
Loggableに含まれる定数
インスタンス属性の概要を折りたたむ
-
#オプション= オブジェクト
readOnly
URI パーサー オブジェクト オプション。
-
サーバー~ オブジェクト
readOnly
URI で指定されたサーバー。
-
#uri_options =オブジェクト
readOnly
Mongo::Options::URI で指定されたオプションを編集しました。
クラスメソッドの概要を折りたたむ
-
.get(string, opts = {}) ⇒ URI, URI::SRVProtocol
URI オブジェクトまたは SRVProtocol URI オブジェクトのいずれかを取得します。
-
.redact(string) ⇒ String
MongoDB 接続文字列のユーザー情報の部分をプレースホルダーで置き換えます。これにより、結果を安全にログ、表示、または例外メッセージに埋め込むことができます。
インスタンス メソッドの概要を折りたたむ
-
# client_options → Mongo::Options::Redacted
インスタンス化時にMongo ::Client に渡す必要があるオプション ハッシュを取得します。そのため、その点で の認証情報とデータベースをマージする必要はありません。ここには1つの点しかありません。
-
認証情報= ハッシュ = ハッシュ
URI で提供されている認証情報を取得します。
-
#database ⇒ String
URI で指定されたデータベースを取得します。
-
#初期化(string, オプション = {{}) = {} = 初期化] = URI
コンストラクター
指定された string から新しい URI を作成します。
-
詳しくは、 を 検査し ますstring
URI の人間が読み取り可能な、抽出された表現を返します。
- # srv_records =オブジェクト
-
# to_s = string
認証情報を削除した状態で、uri を string として取得します。
Address::Validatorに含まれるメソッド
Loggableに含まれるメソッド
#log_debug, #log_error, #log_fatal, #log_info, #log_warn, #logger
コンストラクターの詳細
#初期化(string, オプション = {{}) = {} = 初期化] = URI
指定された string から新しい URI を作成します。
313 314 315 316 317 318 319 320 321 322 323 324 325 326 |
# ファイル 'lib/mongo/uri.rb', 行 313 デフォルト 初期化(string, = {}) 発生 エラー::InvalidURI.新着情報(string, ' URI は nil ではなく string である必要があります。 ') ただし、 string 発生 エラー::InvalidURI.新着情報(string, 空のURI を解析できません。 ') 場合 string.空の場合 @string = string @options = parsed_scheme, _, 残り = string.パーティション(SCHEME_DELim) ただし、 parsed_scheme == スキーム raise_invalid_error!(" 無効なスキーム ' #{ parsed_scheme } '。スキームは ' #{ MONGODB_SCHEME } ' である必要があります。SRV URI を解析するには URI#get を使用し ます 。) end raise_invalid_error!(「 URI にホストがありません」) 場合 残り.空の場合 parse!(残り) end |
インスタンス属性の詳細
#オプション=オブジェクト(読み取り専用)
URI パーサー オブジェクト オプション。
37 38 39 |
# ファイル 'lib/mongo/uri.rb', 行 37 デフォルト @options end |
サーバー=オブジェクト(読み取り専用)
URI で指定されたサーバー。
47 48 49 |
# ファイル 'lib/mongo/uri.rb', 行 47 デフォルト サーバー @servers end |
#uri_options =オブジェクト(読み取り専用)
Mongo::Options::URI で指定されたオプションを編集しました。
42 43 44 |
# ファイル 'lib/mongo/uri.rb', 行 42 デフォルト @uri_options end |
クラスメソッドの詳細
.get(string, opts = {}) ⇒ URI, URI::SRVProtocol
URI オブジェクトまたは SRVProtocol URI オブジェクトのいずれかを取得します。
262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 |
# ファイル 'lib/mongo/uri.rb', 行 262 デフォルト 自己.得る(string, ops = {}) 発生 エラー::InvalidURI.新着情報(string, ' URI は nil ではなく string である必要があります。 ') ただし、 string 発生 エラー::InvalidURI.新着情報(string, 空のURI を解析できません。 ') 場合 string.空の場合 スキーム, = string.パーティション(SCHEME_DELim) ケース スキーム 次の場合: MONGODB_SCHEME URI.新着情報(string, ops) 次の場合: MONGODB_SRV_SCHEME SRVProtocol.新着情報(string, ops) else 発生 エラー::InvalidURI.新着情報(string, " 無効なスキーム ' # {schema } } '。スキームは ' # { MONGODB_SCHEME } ' または ' #{ MONGODB_SRV_SCHEME } ' である必要があり ます) end end |
.redact(string) ⇒ String
MongoDB 接続文字列のユーザー情報の部分をプレースホルダーで置き換えます。これにより、結果を安全にログ、表示、または例外メッセージに埋め込むことができます。
入力は解析されずに string として照合されるため、不正な URI に対しても安全に呼び出すことができます (これは InvalidURI がスローされるときとまったく同じです)。
243 244 245 246 247 |
# ファイル 'lib/mongo/uri.rb', 行 243 デフォルト 自己.redact(string) return string ただし、 string.is_a?(文字列) string.サブ(USERINFO_REDACTION_REGEX, "\\1#{資格情報のプレースホルダー}@") end |
インスタンス メソッドの詳細
# client_options → Mongo::Options::Redacted
インスタンス化時にMongo ::Client に渡す必要があるオプション ハッシュを取得します。そのため、その点で の認証情報とデータベースをマージする必要はありません。ここには1つの点しかありません。
288 289 290 291 292 293 294 |
# ファイル 'lib/mongo/uri.rb', 行 288 デフォルト ops = .タップ 行う |ops| ops[:database] = @database 場合 @database end @user ? ops.merge(Credentials) : ops end |
認証情報=ハッシュ = ハッシュ
URI で提供されている認証情報を取得します。
338 339 340 |
# ファイル 'lib/mongo/uri.rb', 行 338 デフォルト Credentials { user: @user, パスワード: @password } end |
#database ⇒ String
URI で指定されたデータベースを取得します。
350 351 352 |
# ファイル 'lib/mongo/uri.rb', 行 350 デフォルト database @database || Database::管理者 end |
詳しくは、 を 検査しstring ます
URI の隠された、人間が読み取り可能な表現を返します。デフォルトの オブジェクト#inspect は、@string と @password をインスタンス変数としてダンプします。これにより、認証情報が漏えます。
373 374 375 |
# ファイル 'lib/mongo/uri.rb', 行 373 デフォルト 検査する "#<#{self.クラス.name}: #{reconstruct_uri}>" end |
# srv_records =オブジェクト
296 297 298 |
# ファイル 'lib/mongo/uri.rb', 行 296 デフォルト srv_records nil end |
# to_s = string
認証情報を削除した状態で、uri を string として取得します。
認証情報はCREDENTIALS_PLACEHOLDERに置き換えられるため、結果はログに記録したり表示したりしても安全です。元のユーザーとパスワードを復元するには、認証情報を使用します。
364 365 366 |
# ファイル 'lib/mongo/uri.rb', 行 364 デフォルト to_s 再構築_uri end |