module CryptKeeper::LogSubscriber::MysqlAes

Public Instance Methods

sql(event) click to toggle source

Public: Prevents sensitive data from being logged

event - An ActiveSupport::Notifications::Event

Returns a boolean.

Calls superclass method
# File lib/crypt_keeper/log_subscriber/mysql_aes.rb, line 12
def sql(event)
  filter  = /(aes_(encrypt|decrypt))\(.*\)/i
  payload = event.payload[:sql]
    .encode('UTF-8', 'binary', invalid: :replace, undef: :replace, replace: '')

  event.payload[:sql] = payload.gsub(filter) do |_|
    "#{$1}([FILTERED])"
  end

  super(event)
end