Skip to content

Commit 618e28b

Browse files
committed
CR fixes
1 parent 70ebd4c commit 618e28b

File tree

2 files changed

+24
-9
lines changed

2 files changed

+24
-9
lines changed

lib/fluent/plugin/filter_masking.rb

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,14 +17,15 @@ def maskRecord(record)
1717
maskedRecord = record
1818
excludedFields = []
1919
@fieldsToExcludeJSONPathsArray.each do | field |
20-
if record.dig(*field.split(".")) != nil
21-
excludedFields = excludedFields + record.dig(*field.split(".")).split(',')
20+
field_value = record.dig(*field)
21+
if field_value != nil
22+
excludedFields = excludedFields + field_value.split(',')
2223
end
2324
end
2425
begin
2526
recordStr = record.to_s
2627
@fields_to_mask_regex.each do | fieldToMaskRegex, fieldToMaskRegexStringReplacement |
27-
if (excludedFields.length == 0 || !(excludedFields.include? @fields_to_mask_keys[fieldToMaskRegex]))
28+
if !(excludedFields.include? @fields_to_mask_keys[fieldToMaskRegex])
2829
recordStr = recordStr.gsub(fieldToMaskRegex, fieldToMaskRegexStringReplacement)
2930
end
3031
end
@@ -53,7 +54,10 @@ def configure(conf)
5354
fieldsToExcludeJSONPaths = conf['fieldsToExcludeJSONPaths']
5455

5556
if fieldsToExcludeJSONPaths != nil && fieldsToExcludeJSONPaths.size() > 0
56-
@fieldsToExcludeJSONPathsArray = fieldsToExcludeJSONPaths.split(",")
57+
fieldsToExcludeJSONPaths.split(",").each do | field |
58+
# To save splits we'll save the path as an array
59+
@fieldsToExcludeJSONPathsArray.push(field.split("."))
60+
end
5761
end
5862

5963
File.open(fieldsToMaskFilePath, "r") do |f|

test/test_filter_masking.rb

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ def setup
1717
# default configuration for tests
1818
CONFIG = %[
1919
fieldsToMaskFilePath test/fields-to-mask
20-
fieldsToExcludeJSONPaths excludeMaskFields,exclude.excludeMaskFields
20+
fieldsToExcludeJSONPaths excludedField,exclude.path.nestedExcludedField
2121
]
2222

2323
# configuration for tests without exclude parameter
@@ -102,21 +102,32 @@ def filter(config, messages)
102102
test 'mask field in hash object with exclude' do
103103
conf = CONFIG
104104
messages = [
105-
{:not_masked_field=>"mickey-the-dog", :email=>"mickey-the-dog@zooz.com", :first_name=>"Micky", "excludeMaskFields"=>"first_name"}
105+
{:not_masked_field=>"mickey-the-dog", :email=>"mickey-the-dog@zooz.com", :first_name=>"Micky", "excludedField"=>"first_name"}
106106
]
107107
expected = [
108-
{:not_masked_field=>"mickey-the-dog", :email=>MASK_STRING, :first_name=>"Micky", "excludeMaskFields"=>"first_name"}
108+
{:not_masked_field=>"mickey-the-dog", :email=>MASK_STRING, :first_name=>"Micky", "excludedField"=>"first_name"}
109109
]
110110
filtered_records = filter(conf, messages)
111111
assert_equal(expected, filtered_records)
112112
end
113113
test 'mask field in hash object with nested exclude' do
114114
conf = CONFIG
115115
messages = [
116-
{:not_masked_field=>"mickey-the-dog", :last_name=>"the dog", :email=>"mickey-the-dog@zooz.com", :first_name=>"Micky", "exclude"=>{"excludeMaskFields"=>"first_name,last_name"}}
116+
{:not_masked_field=>"mickey-the-dog", :last_name=>"the dog", :email=>"mickey-the-dog@zooz.com", :first_name=>"Micky", "exclude"=>{"path"=>{"nestedExcludedField"=>"first_name,last_name"}}}
117117
]
118118
expected = [
119-
{:not_masked_field=>"mickey-the-dog", :last_name=>"the dog", :email=>MASK_STRING, :first_name=>"Micky", "exclude"=>{"excludeMaskFields"=>"first_name,last_name"}}
119+
{:not_masked_field=>"mickey-the-dog", :last_name=>"the dog", :email=>MASK_STRING, :first_name=>"Micky", "exclude"=>{"path"=>{"nestedExcludedField"=>"first_name,last_name"}}}
120+
]
121+
filtered_records = filter(conf, messages)
122+
assert_equal(expected, filtered_records)
123+
end
124+
test 'mask field in hash object with base and nested exclude' do
125+
conf = CONFIG
126+
messages = [
127+
{:not_masked_field=>"mickey-the-dog", :last_name=>"the dog", :email=>"mickey-the-dog@zooz.com", :first_name=>"Micky", "excludedField"=>"first_name", "exclude"=>{"path"=>{"nestedExcludedField"=>"last_name"}}}
128+
]
129+
expected = [
130+
{:not_masked_field=>"mickey-the-dog", :last_name=>"the dog", :email=>MASK_STRING, :first_name=>"Micky", "excludedField"=>"first_name", "exclude"=>{"path"=>{"nestedExcludedField"=>"last_name"}}}
120131
]
121132
filtered_records = filter(conf, messages)
122133
assert_equal(expected, filtered_records)

0 commit comments

Comments
 (0)