Skip to content

Commit 546f5c1

Browse files
committed
consolidate datum redaction code
1 parent 37a5f86 commit 546f5c1

File tree

4 files changed

+16
-25
lines changed

4 files changed

+16
-25
lines changed

lib/excon/connection.rb

+1-9
Original file line numberDiff line numberDiff line change
@@ -355,15 +355,7 @@ def inspect
355355
vars = instance_variables.inject({}) do |accum, var|
356356
accum.merge!(var.to_sym => instance_variable_get(var))
357357
end
358-
if vars[:'@data'][:headers].has_key?('Authorization')
359-
vars[:'@data'] = vars[:'@data'].dup
360-
vars[:'@data'][:headers] = vars[:'@data'][:headers].dup
361-
vars[:'@data'][:headers]['Authorization'] = REDACTED
362-
end
363-
if vars[:'@data'][:password]
364-
vars[:'@data'] = vars[:'@data'].dup
365-
vars[:'@data'][:password] = REDACTED
366-
end
358+
vars[:'@data'] = Utils.redact(vars[:'@data'])
367359
inspection = '#<Excon::Connection:'
368360
inspection += (object_id << 1).to_s(16)
369361
vars.each do |key, value|

lib/excon/instrumentors/standard_instrumentor.rb

+1-8
Original file line numberDiff line numberDiff line change
@@ -8,14 +8,7 @@ def self.instrument(name, params = {}, &block)
88
params.delete(:connection)
99
params.delete(:stack)
1010

11-
if params.has_key?(:headers) && params[:headers].has_key?('Authorization')
12-
params[:headers] = params[:headers].dup
13-
params[:headers]['Authorization'] = REDACTED
14-
end
15-
16-
if params.has_key?(:password)
17-
params[:password] = REDACTED
18-
end
11+
params = Utils.redact(params)
1912

2013
$stderr.puts(name)
2114
Excon::PrettyPrinter.pp($stderr, params)

lib/excon/pretty_printer.rb

+1-8
Original file line numberDiff line numberDiff line change
@@ -9,14 +9,7 @@ def self.pp(io, datum, indent=0)
99
datum.delete(:connection)
1010
datum.delete(:stack)
1111

12-
if datum.has_key?(:headers) && datum[:headers].has_key?('Authorization')
13-
datum[:headers] = datum[:headers].dup
14-
datum[:headers]['Authorization'] = REDACTED
15-
end
16-
17-
if datum.has_key?(:password)
18-
datum[:password] = REDACTED
19-
end
12+
datum = Utils.redact(datum)
2013
end
2114

2215
indent += 2

lib/excon/utils.rb

+13
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,19 @@ def connection_uri(datum = @data)
2727
end
2828
end
2929

30+
# Redact sensitive info from provided data
31+
def redact(datum)
32+
datum = datum.dup
33+
if datum.has_key?(:headers) && datum[:headers].has_key?('Authorization')
34+
datum[:headers] = datum[:headers].dup
35+
datum[:headers]['Authorization'] = REDACTED
36+
end
37+
if datum.has_key?(:password)
38+
datum[:password] = REDACTED
39+
end
40+
datum
41+
end
42+
3043
def request_uri(datum)
3144
connection_uri(datum) + datum[:path] + query_string(datum)
3245
end

0 commit comments

Comments
 (0)