Class: AuthorizeNet::API::SensitiveDataFilter

Inherits:
Logger::Formatter
  • Object
show all
Defined in:
lib/authorize_net/api/SensitiveDataFilter.rb

Constant Summary collapse

@@sensitiveTagConfig =
nil
@@tagPatterns =
nil
@@tagReplacements =
nil
@@cardPatterns =
nil

Instance Method Summary collapse

Constructor Details

#initializeSensitiveDataFilter

Returns a new instance of SensitiveDataFilter.



38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
# File 'lib/authorize_net/api/SensitiveDataFilter.rb', line 38

def initialize
      @@sensitiveTagConfig = SensitiveDataConfigType.new
      @@cardPatterns       = @@sensitiveTagConfig.sensitiveStringRegexes
    @@tagPatterns        = Array.new(@@sensitiveTagConfig.sensitiveStringRegexes.length)
      @@tagReplacements    = Array.new(@@sensitiveTagConfig.sensitiveTags.length)

      @@sensitiveTagConfig.sensitiveTags.each_with_index do |sensitiveTag, index|
      tagName = sensitiveTag.tagName
      replacement = sensitiveTag.replacement

        if sensitiveTag.pattern.nil? || sensitiveTag.pattern.empty?
   pattern = "(.*)"
        else
 pattern = sensitiveTag.pattern
        end

      @@tagPatterns[index] = "<"+tagName+">"+pattern+"</"+tagName+">"
      @@tagReplacements[index] = "<"+tagName+">"+replacement+"</"+tagName+">"
      end
end

Instance Method Details

#call(severity, time, progname, msg) ⇒ Object



59
60
61
62
63
# File 'lib/authorize_net/api/SensitiveDataFilter.rb', line 59

def call(severity, time, progname, msg)
    xmlMaskedLog = maskSensitiveXmlString(msg)
    ccMasked = maskCreditCards(xmlMaskedLog)
      return formatLogEntry(severity, time, progname, ccMasked)
end

#formatLogEntry(severity, time, progname, msg) ⇒ Object



81
82
83
84
85
86
87
88
89
90
# File 'lib/authorize_net/api/SensitiveDataFilter.rb', line 81

def formatLogEntry(severity, time, progname, msg)
      constants = YAML.load_file(File.dirname(__FILE__) + "/constants.yml")
        progname = constants['clientId']
      date_format = time.strftime("%Y-%m-%d %H:%M:%S")
        if severity == "INFO" or severity == "WARN"
        "[#{date_format}] #{severity}  (#{progname}): #{msg}\n"
        else        
        "[#{date_format}] #{severity} (#{progname}): #{msg}\n"
        end
end

#maskCreditCards(input) ⇒ Object



65
66
67
68
69
70
71
# File 'lib/authorize_net/api/SensitiveDataFilter.rb', line 65

def maskCreditCards(input)
      input = input.force_encoding("UTF-8")
      @@cardPatterns.each {|cardNumberRegex| 
      input = input.gsub(/#{cardNumberRegex}/, "XXX")
      }
    return input
end

#maskSensitiveXmlString(input) ⇒ Object



73
74
75
76
77
78
79
# File 'lib/authorize_net/api/SensitiveDataFilter.rb', line 73

def maskSensitiveXmlString(input)
    input = input.force_encoding("UTF-8")
           @@tagPatterns.each_with_index do |item, index| 
   input = input.gsub(/#{item}/,@@tagReplacements[index])
           end
           return input
end