Auto include middleware for older railses

This commit is contained in:
fatkodima 2019-10-31 14:35:29 +02:00 committed by Gonzalo
parent e131750a6b
commit 1e5fb868f6
No known key found for this signature in database
GPG key ID: 319EB6E3DB0D60FA
3 changed files with 5 additions and 27 deletions

View file

@ -71,12 +71,7 @@ Or install it yourself as:
Then tell your ruby web application to use rack-attack as a middleware.
a) For __rails__ applications with versions >= 5.1 it is used by default. For older rails versions you should enable it explicitly:
```ruby
# In config/application.rb
config.middleware.use Rack::Attack
```
a) For __rails__ applications it is used by default.
You can disable it permanently (like for specific environment) or temporarily (can be useful for specific test cases) by writing:

View file

@ -4,9 +4,7 @@ module Rack
class Attack
class Railtie < ::Rails::Railtie
initializer "rack-attack.middleware" do |app|
if Gem::Version.new(::Rails::VERSION::STRING) >= Gem::Version.new("5.1")
app.middleware.use(Rack::Attack)
end
app.middleware.use(Rack::Attack)
end
end
end

View file

@ -12,24 +12,9 @@ if defined?(Rails)
end
end
if Gem::Version.new(Rails::VERSION::STRING) >= Gem::Version.new("5.1")
it "is used by default" do
@app.initialize!
assert_equal 1, @app.middleware.count(Rack::Attack)
end
it "is not added when it was explicitly deleted" do
@app.config.middleware.delete(Rack::Attack)
@app.initialize!
refute @app.middleware.include?(Rack::Attack)
end
end
if Gem::Version.new(Rails::VERSION::STRING) < Gem::Version.new("5.1")
it "is not used by default" do
@app.initialize!
assert_equal 0, @app.middleware.count(Rack::Attack)
end
it "is used by default" do
@app.initialize!
assert @app.middleware.include?(Rack::Attack)
end
end
end