timber 2.0.8 → 2.0.9

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 39440c7ae6a4d416b54191200b5a406681750be5
4
- data.tar.gz: 04de3467c2bc3bdc363d1816ea892a74b4b237cc
3
+ metadata.gz: 77cca27158a28ec9275818a2efaba37229e2d121
4
+ data.tar.gz: 5423ac901328f3c57811bfc1a7855970d798b55c
5
5
  SHA512:
6
- metadata.gz: c2d65105138fa4e900262dc15274c4a4dbc79b1ecb89a91ffedefcdc64371933d12e5157cb16ffe8999e48375255d2186f7e0cd62ab30efafe13ee9074d2d2a8
7
- data.tar.gz: 9e1562e6465a72a7e491841617d58ec5dd1dd10d6174a34a92fba8817fcd80e9d8433555c7e1ead74022fd0bb90b314dc3b3ea8cbb78b61c31c92dba8dcda6a7
6
+ metadata.gz: b58fb47529e061305c0d178458bf2a5bc170610986492fd4a9573f1fae52ad85b5809f12ec2e2dea7b6553441d10a5d849c63cdfff0ae1cc573bf27e3a0f0d4b
7
+ data.tar.gz: 7a9d4dcde4b68e23b15a62a2e607c76fb371dd313dd28a9d650607be12d3af3fb97e0f6e3ad273ae2ac46762025541d918c7ca065fd3ee045483b65ba75c5fb9
@@ -49,15 +49,7 @@ module Timber
49
49
 
50
50
  def sanitize_params(params)
51
51
  if params.is_a?(::Hash)
52
- params.each_with_object({}) do |(k, v), h|
53
- k = k.to_s.downcase
54
- case k
55
- when PASSWORD_NAME
56
- h[k] = SANITIZED_VALUE
57
- else
58
- h[k] = v
59
- end
60
- end
52
+ Util::Hash.sanitize(params, [PASSWORD_NAME])
61
53
  else
62
54
  params
63
55
  end
@@ -37,8 +37,9 @@ module Timber
37
37
  def parse_backtrace_line(line)
38
38
  # using split for performance reasons
39
39
  file, line, function_part = line.split(":", 3)
40
- _prefix, function = function_part.split("`", 2)
41
- {file: file, line: line.to_i, function: function.chomp("'")}
40
+ _prefix, function_pre = function_part.split("`", 2)
41
+ function = Util::Object.try(function_pre, :chomp, "'")
42
+ {file: file, line: line.to_i, function: function}
42
43
  end
43
44
  end
44
45
  end
@@ -2,6 +2,8 @@ module Timber
2
2
  module Util
3
3
  # @private
4
4
  module Hash
5
+ SANITIZED_VALUE = '[sanitized]'.freeze
6
+
5
7
  extend self
6
8
 
7
9
  def deep_compact(hash)
@@ -21,6 +23,17 @@ module Timber
21
23
 
22
24
  new_hash
23
25
  end
26
+
27
+ def sanitize(hash, keys_to_sanitize)
28
+ hash.each_with_object({}) do |(k, v), h|
29
+ k = k.to_s.downcase
30
+ if keys_to_sanitize.include?(k)
31
+ h[k] = SANITIZED_VALUE
32
+ else
33
+ h[k] = v
34
+ end
35
+ end
36
+ end
24
37
  end
25
38
  end
26
39
  end
@@ -3,7 +3,6 @@ module Timber
3
3
  module HTTPEvent
4
4
  AUTHORIZATION_HEADER = 'authorization'.freeze
5
5
  QUERY_STRING_LIMIT = 5_000.freeze
6
- SANITIZED_VALUE = '[sanitized]'.freeze
7
6
 
8
7
  extend self
9
8
 
@@ -25,22 +24,15 @@ module Timber
25
24
 
26
25
  def normalize_headers(headers)
27
26
  if headers.is_a?(::Hash)
28
- headers.each_with_object({}) do |(k, v), h|
29
- k = k.to_s.downcase
30
- case k
31
- when AUTHORIZATION_HEADER
32
- h[k] = SANITIZED_VALUE
33
- else
34
- if Config.instance.header_filters && Config.instance.header_filters.include?(k)
35
- h[k] = SANITIZED_VALUE
36
- else
37
- # Force the header into a valid UTF-8 string, otherwise we will encounter
38
- # encoding issues when we convert this data to json. Moreoever, if the
39
- # data is already valid UTF-8 we don't pay a penalty.
40
- h[k] = Timber::Util::String.normalize_to_utf8(v)
41
- end
42
- end
27
+ h = headers.each_with_object({}) do |(k, v), h|
28
+ # Force the header into a valid UTF-8 string, otherwise we will encounter
29
+ # encoding issues when we convert this data to json. Moreoever, if the
30
+ # data is already valid UTF-8 we don't pay a penalty.
31
+ h[k] = Timber::Util::String.normalize_to_utf8(v)
43
32
  end
33
+
34
+ keys_to_sanitize = [AUTHORIZATION_HEADER] + (Config.instance.header_filters || [])
35
+ Util::Hash.sanitize(h, keys_to_sanitize)
44
36
  else
45
37
  headers
46
38
  end
@@ -3,11 +3,11 @@ module Timber
3
3
  # @private
4
4
  module Object
5
5
  # @private
6
- def self.try(object, method)
6
+ def self.try(object, method, *args)
7
7
  if object == nil
8
8
  nil
9
9
  else
10
- object.send(method) rescue object
10
+ object.send(method, *args) rescue object
11
11
  end
12
12
  end
13
13
  end
@@ -1,3 +1,3 @@
1
1
  module Timber
2
- VERSION = "2.0.8"
2
+ VERSION = "2.0.9"
3
3
  end
@@ -0,0 +1,12 @@
1
+ # encoding: UTF-8
2
+
3
+ require "spec_helper"
4
+
5
+ describe Timber::Events::ControllerCall, :rails_23 => true do
6
+ describe ".initialize" do
7
+ it "sanitizes the password param" do
8
+ event = described_class.new(controller: 'controller', action: 'action', params: {password: 'password'})
9
+ expect(event.params).to eq({'password' => '[sanitized]'})
10
+ end
11
+ end
12
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: timber
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.8
4
+ version: 2.0.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Timber Technologies, Inc.
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-04-03 00:00:00.000000000 Z
11
+ date: 2017-04-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: msgpack
@@ -230,6 +230,7 @@ files:
230
230
  - spec/timber/contexts_spec.rb
231
231
  - spec/timber/current_context_spec.rb
232
232
  - spec/timber/event_spec.rb
233
+ - spec/timber/events/controller_call_spec.rb
233
234
  - spec/timber/events/custom_spec.rb
234
235
  - spec/timber/events/http_server_request_spec.rb
235
236
  - spec/timber/events_spec.rb
@@ -285,6 +286,7 @@ test_files:
285
286
  - spec/timber/contexts_spec.rb
286
287
  - spec/timber/current_context_spec.rb
287
288
  - spec/timber/event_spec.rb
289
+ - spec/timber/events/controller_call_spec.rb
288
290
  - spec/timber/events/custom_spec.rb
289
291
  - spec/timber/events/http_server_request_spec.rb
290
292
  - spec/timber/events_spec.rb