class Authlete::SensitiveLogger
Constants
- REDACTION_MARK
- SENSITIVE_FIELDS
- SENSITIVE_PATTERNS
Public Class Methods
Source
# File lib/authlete/logging.rb, line 67 def initialize(original_logger) @original_logger = original_logger end
Public Instance Methods
Source
# File lib/authlete/logging.rb, line 71 def <<(msg) redacted_msg = redact_sensitive_data(msg) @original_logger << redacted_msg end
Private Instance Methods
Source
# File lib/authlete/logging.rb, line 78 def redact_sensitive_data(msg) return msg unless msg.is_a?(String) redacted = msg.dup SENSITIVE_PATTERNS.each do |pattern| if pattern.to_s.include?('"') # JSON format redacted.gsub!(pattern, "\\1#{REDACTION_MARK.inspect}") else # URL-encoded format redacted.gsub!(pattern) { "#{$~[0].split('=')[0]}=#{REDACTION_MARK}" } end end redacted end