rack-attack 6.2.0 → 6.2.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ac5af22059fcc24c45b9732a806b13ef8a39b3ab425e713d22b7d0b1c9fbae11
4
- data.tar.gz: fdd20e74080d4254d7910be3d1f0343580a2cedd79b18f2448fa753acd9259e2
3
+ metadata.gz: 55b137d5d1174ac14bcbc494ba7c6753652c23348fef73c5ac712884e299a8d0
4
+ data.tar.gz: 9aae493ec090c669ea43f7a5f9bc8a10e6786266477a4dd65b05495c7559e469
5
5
  SHA512:
6
- metadata.gz: 1f2a7bd75ab8423dde30e482085b19cb5cfbf7347aed13c94da63d31784939075278cc0f891af450bd33e5ef3de4ea092441b26f2519e28ecb5cbe5c6a16d007
7
- data.tar.gz: fbe8d0cc86c52be9a028a4fcb2f8f2399af143b6ccd77c7377cbe5f762bb344bdb80833c5e53221ffefad57d04ee132650b38cd5e9d44c5073e475ba894a1a3f
6
+ metadata.gz: 2e283d8c8b2e5ffcd99435561230c6019a7a1f9637927d4ca29e0df2c9af9522cb84e60dddd040ab3429b1cc697213d80adb4a9b4cb7587933060ad6e426fabd
7
+ data.tar.gz: 1ef81c28f633e8c146a54a0930c706a3158aab568328743e0a3b0953bcbcba0bfb4a32a3e589ea1292c001ec6fd8d52a9c6de3cc4063b466045b692e92d27318
@@ -153,8 +153,9 @@ module Rack
153
153
  end
154
154
 
155
155
  def call(env)
156
- return @app.call(env) unless self.class.enabled
156
+ return @app.call(env) if !self.class.enabled || env["rack.attack.called"]
157
157
 
158
+ env["rack.attack.called"] = true
158
159
  env['PATH_INFO'] = PathNormalizer.normalize_path(env['PATH_INFO'])
159
160
  request = Rack::Attack::Request.new(env)
160
161
 
@@ -3,17 +3,9 @@
3
3
  module Rack
4
4
  class Attack
5
5
  class Railtie < ::Rails::Railtie
6
- initializer 'rack.attack.middleware', after: :load_config_initializers, before: :build_middleware_stack do |app|
6
+ initializer "rack-attack.middleware" do |app|
7
7
  if Gem::Version.new(::Rails::VERSION::STRING) >= Gem::Version.new("5.1")
8
- middlewares = app.config.middleware
9
- operations = middlewares.send(:operations) + middlewares.send(:delete_operations)
10
-
11
- use_middleware = operations.none? do |operation|
12
- middleware = operation[1]
13
- middleware.include?(Rack::Attack)
14
- end
15
-
16
- middlewares.use(Rack::Attack) if use_middleware
8
+ app.middleware.use(Rack::Attack)
17
9
  end
18
10
  end
19
11
  end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Rack
4
4
  class Attack
5
- VERSION = '6.2.0'
5
+ VERSION = '6.2.1'
6
6
  end
7
7
  end
@@ -18,12 +18,6 @@ if defined?(Rails)
18
18
  assert_equal 1, @app.middleware.count(Rack::Attack)
19
19
  end
20
20
 
21
- it "is not added when it was added explicitly" do
22
- @app.config.middleware.use(Rack::Attack)
23
- @app.initialize!
24
- assert_equal 1, @app.middleware.count(Rack::Attack)
25
- end
26
-
27
21
  it "is not added when it was explicitly deleted" do
28
22
  @app.config.middleware.delete(Rack::Attack)
29
23
  @app.initialize!
@@ -46,6 +46,8 @@ class MiniTest::Spec
46
46
  Rack::Builder.new do
47
47
  # Use Rack::Lint to test that rack-attack is complying with the rack spec
48
48
  use Rack::Lint
49
+ # Intentionally added twice to test idempotence property
50
+ use Rack::Attack
49
51
  use Rack::Attack
50
52
  use Rack::Lint
51
53
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rack-attack
3
3
  version: !ruby/object:Gem::Version
4
- version: 6.2.0
4
+ version: 6.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Aaron Suggs
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-10-12 00:00:00.000000000 Z
11
+ date: 2019-10-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rack