Module: Mongo::Auth::StringPrep Private

Extended by:
StringPrep
Included in:
StringPrep
Defined in:
lib/mongo/auth/stringprep.rb,
lib/mongo/auth/stringprep/tables.rb,
lib/mongo/auth/stringprep/profiles/sasl.rb

Overview

This module is part of a private API. You should avoid using this module if possible, as it may be removed or be changed in the future.

This namespace contains all behavior related to string preparation (RFC 3454). It’s used to implement SCRAM-SHA-256 authentication, which is available in MongoDB server versions 4.0 and later.

Since:

  • 2.6.0

Defined Under Namespace

Modules: Profiles, Tables

Instance Method Summary collapse

Instance Method Details

#prepare(data, mappings, prohibited, options = {}) ⇒ Object

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Prepare a string given a set of mappings and prohibited character tables.

Examples:

Prepare a string.

StringPrep.prepare("some string",
                   StringPrep::Profiles::SASL::MAPPINGS,
                   StringPrep::Profiles::SASL::PROHIBITED,
                   normalize: true, bidi: true)

Options Hash (options):

  • :normalize (Boolean)

    Whether or not to apply Unicode normalization to the data.

  • :bidi (Boolean)

    Whether or not to ensure that the data contains valid bidirectional input.

Raises:

Since:

  • 2.6.0



54
55
56
57
58
59
60
# File 'lib/mongo/auth/stringprep.rb', line 54

def prepare(data, mappings, prohibited, options = {})
  apply_maps(data, mappings).tap do |mapped|
    normalize!(mapped) if options[:normalize]
    check_prohibited!(mapped, prohibited)
    check_bidi!(mapped) if options[:bidi]
  end
end