Module: Auth::Sanitizer
- Defined in:
- lib/auth/sanitizer/core.rb,
lib/auth/sanitizer/version.rb,
lib/auth/sanitizer/thing_filter.rb,
lib/auth/sanitizer/value_sanitizer.rb,
lib/auth/sanitizer/sanitized_logger.rb,
lib/auth/sanitizer/filtered_attributes.rb
Overview
Credential redaction for inspect output and debug logging.
Defined Under Namespace
Modules: FilteredAttributes, Version Classes: Error, SanitizedLogger, ThingFilter, ValueSanitizer
Constant Summary collapse
- DEFAULT_FILTERED_KEYS =
Default keys filtered from debug log output.
%w[ access_token refresh_token id_token client_secret assertion code_verifier token ].freeze
- DEFAULT_FILTERED_LABEL =
Default replacement label for redacted values.
"[FILTERED]"- DEFAULT_FILTERED_LABEL_PROVIDER =
Default callable used to provide the filtered replacement label.
-> { DEFAULT_FILTERED_LABEL }
- VERSION =
Current gem version exposed at the traditional constant location.
Version::VERSION
Class Method Summary collapse
-
.default_filtered_keys ⇒ Array<String>
Returns the default set of key names filtered from debug log output.
-
.sanitize(value, filtered_keys: default_filtered_keys, label: filtered_label, **options) ⇒ Object
Sanitize a value using the configured key names and replacement label.
Instance Method Summary collapse
-
#filtered_label ⇒ String
Returns the current filtered label by calling the installed provider.
-
#filtered_label_provider= ⇒ void
Install a custom provider for the filtered label.
Class Method Details
.default_filtered_keys ⇒ Array<String>
Returns the default set of key names filtered from debug log output.
Host gems may override this by passing filtered_keys: directly to
Auth::Sanitizer::SanitizedLogger#initialize.
62 63 64 |
# File 'lib/auth/sanitizer/core.rb', line 62 def default_filtered_keys DEFAULT_FILTERED_KEYS end |
.sanitize(value, filtered_keys: default_filtered_keys, label: filtered_label, **options) ⇒ Object
Sanitize a value using the configured key names and replacement label.
Hashes and arrays are traversed recursively; strings are filtered using
the same formats supported by {SanitizedLogger}.
74 75 76 |
# File 'lib/auth/sanitizer/core.rb', line 74 def sanitize(value, filtered_keys: default_filtered_keys, label: filtered_label, **) ValueSanitizer.new(filtered_keys: filtered_keys, label: label, **).sanitize(value) end |
Instance Method Details
#filtered_label ⇒ String
Returns the current filtered label by calling the installed provider.
Host gems may install a provider that reads from their own config by
calling #filtered_label_provider=.
36 37 38 |
# File 'lib/auth/sanitizer/core.rb', line 36 define_singleton_method(:filtered_label) do filtered_label_provider_mutex.synchronize { filtered_label_provider }.call end |
#filtered_label_provider= ⇒ void
This method returns an undefined value.
Install a custom provider for the filtered label.
The provider callable is invoked each time a new {FilteredAttributes}- or
{SanitizedLogger}-bearing object is initialized, allowing the label to track a host gem’s
live configuration while still being snapshotted per object instance.
49 50 51 52 53 |
# File 'lib/auth/sanitizer/core.rb', line 49 define_singleton_method(:filtered_label_provider=) do |provider| filtered_label_provider_mutex.synchronize do filtered_label_provider = provider end end |