rack-attack/lib/rack/attack/allow2ban.rb
Lucas Mansur 11e9557ccb [Fixes #302] Initial style guide adoption (#330)
* Initial Rubocop configuration

* Fix Rubocop layout offenses for lib

* Fix some spec offenses

* Fix leftover layout offenses
2018-03-30 16:08:00 -03:00

24 lines
647 B
Ruby

module Rack
class Attack
class Allow2Ban < Fail2Ban
class << self
protected
def key_prefix
'allow2ban'
end
# everything is the same here except we only return true
# (blocking the request) if they have tripped the limit.
def fail!(discriminator, bantime, findtime, maxretry)
count = cache.count("#{key_prefix}:count:#{discriminator}", findtime)
if count >= maxretry
ban!(discriminator, bantime)
end
# we may not block them this time, but they're banned for next time
false
end
end
end
end
end