class RequestLogAnalyzer::Filter::Anonymize
Filter
to anonymize parsed values Options
-
:mode
:reject or :accept. -
:field
Specific field to accept or reject. -
:value
Value that the field should match to be accepted or rejected.
Public Instance Methods
anonymize_url(value)
click to toggle source
# File lib/request_log_analyzer/filter/anonymize.rb 12 def anonymize_url(value) 13 value.sub(/^https?\:\/\/[A-Za-z0-9\.-]+\//, 'http://example.com/') 14 end
filter(request)
click to toggle source
# File lib/request_log_analyzer/filter/anonymize.rb 20 def filter(request) 21 # TODO: request.attributes is bad practice 22 request.attributes.each do |key, value| 23 if key == :ip 24 request.attributes[key] = generate_random_ip 25 elsif key == :url 26 request.attributes[key] = anonymize_url(value) 27 elsif [:duration, :view, :db, :type, :after_filters_time, :before_filters_time, 28 :action_time].include?(key) 29 request.attributes[key] = fuzz(value) 30 end 31 end 32 33 request 34 end
fuzz(value)
click to toggle source
# File lib/request_log_analyzer/filter/anonymize.rb 16 def fuzz(value) 17 value * ((75 + rand(50)) / 100.0) 18 end
generate_random_ip()
click to toggle source
# File lib/request_log_analyzer/filter/anonymize.rb 8 def generate_random_ip 9 "#{rand(256)}.#{rand(256)}.#{rand(256)}.#{rand(256)}" 10 end