Sha256: 9c3a8af1293af412445df316b2ad499df25f6c38317fa817c2379cddd1059ef8

Contents?: true

Size: 954 Bytes

Versions: 12

Compression:

Stored size: 954 Bytes

Contents

# frozen_string_literal: true
module FinAppsCore
  module Utils
    module ParameterFilter
      using StringExtensions
      PROTECTED_KEYS = %w(login login1 username password password1 password_confirm token
                          x-finapps-token authorization).freeze

      def skip_sensitive_data(hash)
        if hash.is_a? String
          hash = hash.json_to_hash
        end
        if hash.is_a? Hash
          filtered_hash = hash.clone
          filtered_hash.each do |key, value|
            if PROTECTED_KEYS.include? key.to_s.downcase
              filtered_hash[key] = '[REDACTED]'
            elsif value.is_a?(Hash)
              filtered_hash[key] = skip_sensitive_data(value)
            elsif value.is_a?(Array)
              filtered_hash[key] = value.map {|v| v.is_a?(Hash) ? skip_sensitive_data(v) : v }
            end
          end

          filtered_hash
        else
          hash
        end
      end
    end
  end
end

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
finapps_core-2.0.13 lib/finapps_core/utils/parameter_filter.rb
finapps_core-2.0.12 lib/finapps_core/utils/parameter_filter.rb
finapps_core-2.0.11 lib/finapps_core/utils/parameter_filter.rb
finapps_core-2.0.10 lib/finapps_core/utils/parameter_filter.rb
finapps_core-2.0.9 lib/finapps_core/utils/parameter_filter.rb
finapps_core-2.0.8 lib/finapps_core/utils/parameter_filter.rb
finapps_core-2.0.7 lib/finapps_core/utils/parameter_filter.rb
finapps_core-2.0.6 lib/finapps_core/utils/parameter_filter.rb
finapps_core-2.0.5 lib/finapps_core/utils/parameter_filter.rb
finapps_core-2.0.4 lib/finapps_core/utils/parameter_filter.rb
finapps_core-2.0.3 lib/finapps_core/utils/parameter_filter.rb
finapps_core-2.0.2 lib/finapps_core/utils/parameter_filter.rb