instana 1.199.0 → 1.199.1

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: 86a3e023781d52d3b5efd25c9b5d304520dd3c88aecde954c326bd736abae787
4
- data.tar.gz: b6c7bf11431925b9a48b827b5adbb52d93cb1f1f44bde1ebef98bd89f2188cb0
3
+ metadata.gz: 5bfc77f8ea09bd4e8c493e97261b962a4b4f6227de513806b7b41beacea46118
4
+ data.tar.gz: 3ab9bc87d33895f4df52ba02bb9f9dfd14364547fb9ebe4b4ef47ab1a2ef1aa0
5
5
  SHA512:
6
- metadata.gz: e2045faa632b6edc00e4dba26feb69d5249c755698a0dac2adeaa0e2b1cbe65f7f37682f7b59a1d3d000f8908dbee85c4f0356da333f02e874361b5861cfcc3f
7
- data.tar.gz: e1b3983ace1be9653732b033902c7f59a74dce020ebfb585e02cf3dfdd1c2e7eb50df4cff9ff4eb8467df3a57b3208165efe659d97073bd6bc97f9e2bdd62fa0
6
+ metadata.gz: 2cfcd49b02a42fd0160c50584cd62c2b98664f7d416dc7935a53d72e092d96dfeead989fc58ab66f95acdde4ef48acdf7179e4dbcbe4a58906c41d6380ec700e
7
+ data.tar.gz: 7d6265faff1cad2ae597f66397d192d9ed1dbbe5634d1c3aeeb1d05ac2a8548061a8023990b296bb9a23934b1d0fc396ff267eb282a265415c56e1d986dbd9af
@@ -13,21 +13,31 @@ module Instana
13
13
  def remove_from_query(str, secret_values = Instana.agent.secret_values)
14
14
  return str unless secret_values
15
15
 
16
- url = URI(str)
17
- params = url.scheme ? CGI.parse(url.query || '') : CGI.parse(url.to_s)
16
+ begin
17
+ url = URI(str)
18
+ params = url.scheme ? CGI.parse(url.query || '') : CGI.parse(url.to_s)
19
+
20
+ redacted = redact(params, secret_values)
21
+
22
+ url.query = URI.encode_www_form(redacted)
23
+ url.scheme ? CGI.unescape(url.to_s) : CGI.unescape(url.query)
24
+ rescue URI::InvalidURIError => _e
25
+ params = CGI.parse(str || '')
26
+ redacted = redact(params, secret_values)
27
+ CGI.unescape(URI.encode_www_form(redacted))
28
+ end
29
+ end
30
+
31
+ private
18
32
 
19
- redacted = params.map do |k, v|
33
+ def redact(params, secret_values)
34
+ params.map do |k, v|
20
35
  needs_redaction = secret_values['list']
21
36
  .any? { |t| matcher(secret_values['matcher']).(t,k) }
22
37
  [k, needs_redaction ? '<redacted>' : v]
23
38
  end
24
-
25
- url.query = URI.encode_www_form(redacted)
26
- url.scheme ? CGI.unescape(url.to_s) : CGI.unescape(url.query)
27
39
  end
28
40
 
29
- private
30
-
31
41
  def matcher(name)
32
42
  case name
33
43
  when 'equals-ignore-case'
@@ -2,6 +2,6 @@
2
2
  # (c) Copyright Instana Inc. 2016
3
3
 
4
4
  module Instana
5
- VERSION = "1.199.0"
5
+ VERSION = "1.199.1"
6
6
  VERSION_FULL = "instana-#{VERSION}"
7
7
  end
data/test/secrets_test.rb CHANGED
@@ -78,6 +78,16 @@ class SecretsTest < Minitest::Test
78
78
  assert_redacted @subject.remove_from_query(url, sample_config), %w(instantiate)
79
79
  end
80
80
 
81
+ def test_without_url
82
+ sample_config = {
83
+ "matcher"=>"contains",
84
+ "list"=>["stan"]
85
+ }
86
+
87
+ url = 'filter[instantiate]=true'
88
+ assert_redacted @subject.remove_from_query(url, sample_config), %w(filter[instantiate]), raw_str: true
89
+ end
90
+
81
91
  private
82
92
 
83
93
  def url_for(keys)
@@ -86,9 +96,9 @@ class SecretsTest < Minitest::Test
86
96
  url.to_s
87
97
  end
88
98
 
89
- def assert_redacted(str, keys)
90
- url = URI(str)
91
- params = CGI.parse(url.query)
99
+ def assert_redacted(str, keys, raw_str: false)
100
+ params = raw_str ? CGI.parse(str) : CGI.parse(URI(str).query)
101
+ pp params
92
102
 
93
103
  assert_equal keys, params.select { |_, v| v == %w(<redacted>) }.keys, 'to be redacted'
94
104
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: instana
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.199.0
4
+ version: 1.199.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Peter Giacomo Lombardo
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-04-09 00:00:00.000000000 Z
11
+ date: 2021-04-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler