From 97dce48bfc5aee6522b15c0687f8ba6b7c7f7813 Mon Sep 17 00:00:00 2001 From: blahed Date: Thu, 1 May 2014 22:20:13 -0400 Subject: [PATCH] add throttle discriminator to rack env --- lib/rack/attack/throttle.rb | 7 ++++--- spec/rack_attack_throttle_spec.rb | 1 + 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/lib/rack/attack/throttle.rb b/lib/rack/attack/throttle.rb index 7ad6267..2824014 100644 --- a/lib/rack/attack/throttle.rb +++ b/lib/rack/attack/throttle.rb @@ -32,9 +32,10 @@ module Rack (count > current_limit).tap do |throttled| if throttled - req.env['rack.attack.matched'] = name - req.env['rack.attack.match_type'] = :throttle - req.env['rack.attack.match_data'] = data + req.env['rack.attack.matched'] = name + req.env['rack.attack.match_discriminator'] = discriminator + req.env['rack.attack.match_type'] = :throttle + req.env['rack.attack.match_data'] = data Rack::Attack.instrument(req) end end diff --git a/spec/rack_attack_throttle_spec.rb b/spec/rack_attack_throttle_spec.rb index e1a90da..2acf55f 100644 --- a/spec/rack_attack_throttle_spec.rb +++ b/spec/rack_attack_throttle_spec.rb @@ -32,6 +32,7 @@ describe 'Rack::Attack.throttle' do last_request.env['rack.attack.matched'].must_equal 'ip/sec' last_request.env['rack.attack.match_type'].must_equal :throttle last_request.env['rack.attack.match_data'].must_equal({:count => 2, :limit => 1, :period => @period}) + last_request.env['rack.attack.match_discriminator'].must_equal('1.2.3.4') end it 'should set a Retry-After header' do last_response.headers['Retry-After'].must_equal @period.to_s