class AuthorizeNet::API::SensitiveDataFilter

Public Class Methods

new() click to toggle source
# 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

Public Instance Methods

call(severity, time, progname, msg) click to toggle source
# 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) click to toggle source
# 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) click to toggle source
# 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) click to toggle source
# 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