class Sqreen::Rules::DeviseAuthTrackCB
Public Class Methods
new(*args)
click to toggle source
Calls superclass method
# File lib/sqreen/rules/devise_auth_track_cb.rb, line 13 def initialize(*args) super(*args) @overtimeable = false end
Public Instance Methods
post(_rv, instance, _args, _budget)
click to toggle source
# File lib/sqreen/rules/devise_auth_track_cb.rb, line 18 def post(_rv, instance, _args, _budget) status = instance.instance_variable_get(:@result).to_s data = instance.authentication_hash keys = instance.send(:authentication_keys) ip = framework.client_ip category = status == 'failure' ? 'auto-login-fail' : 'auto-login-success' data = data.select { |k, _| keys.include?(k) } if data.empty? Sqreen.log.debug { "#{category} from #{ip} but keys empty" } return end payload = { keys: data.to_a, ip: ip } record_observation(category, JSON.dump(payload), 1) advise_action(nil) end