Sha256: b3526cf6f294ecc3c4ba4ffe10798fce06e68f9b61d3d02f8096f96f18f1bfe5

Contents?: true

Size: 1.43 KB

Versions: 34

Compression:

Stored size: 1.43 KB

Contents

require 'pathname'
require 'set'

module Aws
  module Log
    class ParamFilter

      # A managed list of sensitive parameters that should be filtered from
      # logs. This is updated automatically as part of each release. See the
      # `tasks/sensitive.rake` for more information.
      #
      # ** DO NOT EDIT THE FOLLOWING LINE OF CODE **
      #
      SENSITIVE = [:access_token, :admin_contact, :artifact_credentials, :auth_code, :base_32_string_seed, :client_id, :client_secret, :copy_source_sse_customer_key, :local_console_password, :new_password, :old_password, :password, :plaintext, :previous_password, :private_key, :proposed_password, :qr_code_png, :registrant_contact, :secret_access_key, :secret_hash, :shared_secret, :sse_customer_key, :ssekms_key_id, :tech_contact, :trust_password, :upload_credentials, :username, :value]

      def initialize(options = {})
        @filters = Set.new(SENSITIVE + Array(options[:filter]))
      end

      def filter(value)
        case value
        when Struct, Hash then filter_hash(value)
        when Array then filter_array(value)
        else value
        end
      end

      private

      def filter_hash(values)
        filtered = {}
        values.each_pair do |key, value|
          filtered[key] = @filters.include?(key) ? '[FILTERED]' : filter(value)
        end
        filtered
      end

      def filter_array(values)
        values.map { |value| filter(value) }
      end

    end
  end
end

Version data entries

34 entries across 34 versions & 2 rubygems

Version Path
aws-sdk-core-2.3.23 lib/aws-sdk-core/log/param_filter.rb
ivanvc-logstash-input-s3-3.1.1.4 vendor/local/gems/aws-sdk-core-2.3.22/lib/aws-sdk-core/log/param_filter.rb
ivanvc-logstash-input-s3-3.1.1.3 vendor/local/gems/aws-sdk-core-2.3.22/lib/aws-sdk-core/log/param_filter.rb
ivanvc-logstash-input-s3-3.1.1.2 vendor/local/gems/aws-sdk-core-2.3.22/lib/aws-sdk-core/log/param_filter.rb
aws-sdk-core-2.4.3 lib/aws-sdk-core/log/param_filter.rb
aws-sdk-core-2.4.2 lib/aws-sdk-core/log/param_filter.rb
aws-sdk-core-2.4.1 lib/aws-sdk-core/log/param_filter.rb
aws-sdk-core-2.4.0 lib/aws-sdk-core/log/param_filter.rb
aws-sdk-core-2.3.22 lib/aws-sdk-core/log/param_filter.rb
aws-sdk-core-2.3.21 lib/aws-sdk-core/log/param_filter.rb
aws-sdk-core-2.3.20 lib/aws-sdk-core/log/param_filter.rb
aws-sdk-core-2.3.19 lib/aws-sdk-core/log/param_filter.rb
aws-sdk-core-2.3.18 lib/aws-sdk-core/log/param_filter.rb
aws-sdk-core-2.3.17 lib/aws-sdk-core/log/param_filter.rb
aws-sdk-core-2.3.16 lib/aws-sdk-core/log/param_filter.rb
aws-sdk-core-2.3.15 lib/aws-sdk-core/log/param_filter.rb
aws-sdk-core-2.3.14 lib/aws-sdk-core/log/param_filter.rb
aws-sdk-core-2.3.13 lib/aws-sdk-core/log/param_filter.rb
aws-sdk-core-2.3.12 lib/aws-sdk-core/log/param_filter.rb
aws-sdk-core-2.3.11 lib/aws-sdk-core/log/param_filter.rb