pier_logging 0.1.14 → 0.1.15

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 5cf700dcf41369d8bf53db3a083f23777b62a30da2250a3297560c2d6aaef187
4
- data.tar.gz: 25ee1fabd0de22e25b08b3ef356a731b1dd828490699b9dadbb1ddf281fd061e
3
+ metadata.gz: d5b9f495421c7b6e2b36d0cd8a0ff5978cba36feaf25350a383900347f58b9eb
4
+ data.tar.gz: 64339331f573395e582b713b460278ff41df69906b6584765b14f3a6f2f8f122
5
5
  SHA512:
6
- metadata.gz: 9ce0e74e9ef845b85b226dbc44b462a4d1557d8b74faa5ffb937d983fad866430d21f3d6fd53a294638a2f2eae8cdd56226fde35039e5fbe3605143efe23bdea
7
- data.tar.gz: 8ad7ccc220039ae2d1ffc9baca617d5984af96431729ec635d3e9294a04886bf4afbb7a2d14c45fb43b3f23b9fe796fe128c80b1dc164e1052a2ce1b476cf27a
6
+ metadata.gz: 9cbc2402ac849f1b89938d17e3b33c47829148e5bc67eda1250e189fb0b394385ffbc58877e875c8437cfabf7ddb8e0c524f3e3fce42adec755b5afc4a097cac
7
+ data.tar.gz: ef22e8acb1ec18fc43b54e60454759a7f2728375344feb9c97b3d8de24db0dfe1bb28cd3e824ba9f9518d03aa8e9db399a3b37856192b43ef9d225b2c9d06a18
@@ -54,13 +54,14 @@ module PierLogging
54
54
  end
55
55
 
56
56
  class RequestLoggerConfiguration
57
- attr_reader :enabled, :user_info_getter, :hide_response_body_for_paths, :log_response
57
+ attr_reader :enabled, :user_info_getter, :hide_response_body_for_paths, :log_response, :hide_request_headers
58
58
 
59
59
  def initialize
60
60
  @user_info_getter = nil
61
61
  @enabled = false
62
62
  @hide_response_body_for_paths = nil
63
63
  @log_response = true
64
+ @hide_request_headers = nil
64
65
  end
65
66
 
66
67
  def user_info_getter=(proc)
@@ -80,6 +81,13 @@ module PierLogging
80
81
 
81
82
  @hide_response_body_for_paths = hide_response_body_for_paths
82
83
  end
84
+
85
+ def hide_request_headers=(hide_request_headers)
86
+ unless (hide_request_headers.is_a? Array) && (hide_request_headers.all?{|item| item.is_a? Regexp})
87
+ raise ArgumentError, "Config 'hide_request_headers' must be an 'Array of Regexps'"
88
+ end
89
+ @hide_request_headers = hide_request_headers
90
+ end
83
91
 
84
92
  def enabled=(enabled = false)
85
93
  raise ArgumentError, "Config 'enabled' must be a 'boolean'" unless !!enabled == enabled
@@ -71,8 +71,14 @@ module PierLogging
71
71
 
72
72
  private
73
73
  def get_request_headers_from_env(env)
74
- env.select { |k,v| k[0..4] == 'HTTP_'}.
74
+ hide_request_headers = PierLogging.request_logger_configuration.hide_request_headers
75
+
76
+ headers = env.select { |k,v| k[0..4] == 'HTTP_'}.
75
77
  transform_keys { |k| k[5..-1].split('_').join('-').upcase }
78
+
79
+ return redact_hash(headers, hide_request_headers, nil) if hide_request_headers.present?
80
+
81
+ headers
76
82
  end
77
83
 
78
84
  def response_body(request_path, body)
@@ -108,11 +114,11 @@ module PierLogging
108
114
  body
109
115
  end
110
116
 
111
- def redact_hash(hash)
117
+ def redact_hash(hash, replace_keys = REDACT_REPLACE_KEYS, replace_by = REDACT_REPLACE_BY)
112
118
  hash.traverse do |k,v|
113
- should_redact = REDACT_REPLACE_KEYS.any?{ |regex| k =~regex }
119
+ should_redact = replace_keys.any?{ |regex| k =~regex }
114
120
  if (should_redact)
115
- [k, REDACT_REPLACE_BY]
121
+ [k, replace_by]
116
122
  else
117
123
  [k, v]
118
124
  end
@@ -1,3 +1,3 @@
1
1
  module PierLogging
2
- VERSION = "0.1.14"
2
+ VERSION = "0.1.15"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pier_logging
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.14
4
+ version: 0.1.15
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mauricio Banduk