Parent

Rack::Attack::Fail2Ban

Public Class Methods

filter(discriminator, options) click to toggle source
# File lib/rack/attack/fail2ban.rb, line 5
def filter(discriminator, options)
  bantime   = options[:bantime]   or raise ArgumentError, "Must pass bantime option"
  findtime  = options[:findtime]  or raise ArgumentError, "Must pass findtime option"
  maxretry  = options[:maxretry]  or raise ArgumentError, "Must pass maxretry option"

  if banned?(discriminator)
    # Return true for blacklist
    true
  elsif yield
    fail!(discriminator, bantime, findtime, maxretry)
  end
end

Protected Class Methods

fail!(discriminator, bantime, findtime, maxretry) click to toggle source
# File lib/rack/attack/fail2ban.rb, line 23
def fail!(discriminator, bantime, findtime, maxretry)
  count = cache.count("#{key_prefix}:count:#{discriminator}", findtime)
  if count >= maxretry
    ban!(discriminator, bantime)
  end

  true
end
key_prefix() click to toggle source
# File lib/rack/attack/fail2ban.rb, line 19
def key_prefix
  'fail2ban'
end

[Validate]

Generated with the Darkfish Rdoc Generator 2.