Rails rack attack gem throttle

I don't know why I can not use rack-attack gem Here what I did

Gemfile

gem 'rack-attack' 

I ve installed the gem

config/application.rb

config.middleware.use Rack::Attack 

initializers/rack-attack.rb

class Rack::Attack throttle('logins/ip', :limit => 5, :period => 60.seconds) do |req| if req.path == '/login' && req.post? Rails.logger.error("Rack::Attack Too many login attempts from IP: #{req.ip}") req.ip end end end 

routes.rb

post 'login' => 'index#create' root 'index#new' get 'login' => 'index#new' 

I am using Rails 4.2.3 and the rack-attack gem 4.3.0

I wonder what I miss

1

2 Answers

make sure you configure cache.store in your initializers/rack-attack.rb file you can configure it like that:

class Rack::Attack ... cache.store = ActiveSupport::Cache::MemoryStore.new ... end 
1

You may need enable the cache in your development environment

please set config.cache_classes = true in config/environments/development.rb.

2

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

You Might Also Like