mirror of
https://github.com/samsonjs/rack-attack.git
synced 2026-03-25 09:25:49 +00:00
refactor: attempt to avoid user confusion by clarifying method is used by throttle
This commit is contained in:
parent
0f1a72a4d4
commit
f3f0df3fc0
3 changed files with 10 additions and 10 deletions
|
|
@ -31,7 +31,7 @@ module Rack
|
|||
autoload :Allow2Ban, 'rack/attack/allow2ban'
|
||||
|
||||
class << self
|
||||
attr_accessor :enabled, :notifier, :discriminator_normalizer
|
||||
attr_accessor :enabled, :notifier, :throttle_discriminator_normalizer
|
||||
attr_reader :configuration
|
||||
|
||||
def instrument(request)
|
||||
|
|
@ -83,7 +83,7 @@ module Rack
|
|||
# Set defaults
|
||||
@enabled = true
|
||||
@notifier = ActiveSupport::Notifications if defined?(ActiveSupport::Notifications)
|
||||
@discriminator_normalizer = lambda do |discriminator|
|
||||
@throttle_discriminator_normalizer = lambda do |discriminator|
|
||||
discriminator.to_s.strip.downcase
|
||||
end
|
||||
@configuration = Configuration.new
|
||||
|
|
|
|||
|
|
@ -51,8 +51,8 @@ module Rack
|
|||
|
||||
def discriminator_for(request)
|
||||
discriminator = block.call(request)
|
||||
if discriminator && Rack::Attack.discriminator_normalizer
|
||||
discriminator = Rack::Attack.discriminator_normalizer.call(discriminator)
|
||||
if discriminator && Rack::Attack.throttle_discriminator_normalizer
|
||||
discriminator = Rack::Attack.throttle_discriminator_normalizer.call(discriminator)
|
||||
end
|
||||
discriminator
|
||||
end
|
||||
|
|
|
|||
|
|
@ -145,7 +145,7 @@ describe 'Rack::Attack.throttle with block retuning nil' do
|
|||
end
|
||||
end
|
||||
|
||||
describe 'Rack::Attack.throttle with discriminator_normalizer' do
|
||||
describe 'Rack::Attack.throttle with throttle_discriminator_normalizer' do
|
||||
before do
|
||||
@period = 60
|
||||
@emails = [
|
||||
|
|
@ -161,16 +161,16 @@ describe 'Rack::Attack.throttle with discriminator_normalizer' do
|
|||
end
|
||||
end
|
||||
|
||||
it 'should not differentiate requests when discriminator_normalizer is enabled' do
|
||||
it 'should not differentiate requests when throttle_discriminator_normalizer is enabled' do
|
||||
post_logins
|
||||
key = "rack::attack:#{Time.now.to_i / @period}:logins/email:person@example.com"
|
||||
_(Rack::Attack.cache.store.read(key)).must_equal 3
|
||||
end
|
||||
|
||||
it 'should differentiate requests when discriminator_normalizer is disabled' do
|
||||
it 'should differentiate requests when throttle_discriminator_normalizer is disabled' do
|
||||
begin
|
||||
prev = Rack::Attack.discriminator_normalizer
|
||||
Rack::Attack.discriminator_normalizer = nil
|
||||
prev = Rack::Attack.throttle_discriminator_normalizer
|
||||
Rack::Attack.throttle_discriminator_normalizer = nil
|
||||
|
||||
post_logins
|
||||
@emails.each do |email|
|
||||
|
|
@ -178,7 +178,7 @@ describe 'Rack::Attack.throttle with discriminator_normalizer' do
|
|||
_(Rack::Attack.cache.store.read(key)).must_equal 1
|
||||
end
|
||||
ensure
|
||||
Rack::Attack.discriminator_normalizer = prev
|
||||
Rack::Attack.throttle_discriminator_normalizer = prev
|
||||
end
|
||||
end
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue