rack-attack 6.2.0 → 6.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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