From e6b61f92f4d8cb6adff5e373c69e7ceb5cd01f1d Mon Sep 17 00:00:00 2001 From: Mathias Meyer Date: Tue, 9 Jul 2013 11:37:37 +0200 Subject: [PATCH] Return 420 to a blacklisted client. --- lib/travis/api/app.rb | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/lib/travis/api/app.rb b/lib/travis/api/app.rb index 474d902d..fb4ac081 100644 --- a/lib/travis/api/app.rb +++ b/lib/travis/api/app.rb @@ -64,6 +64,16 @@ module Travis::Api def initialize @app = Rack::Builder.app do + Rack::Utils::HTTP_STATUS_CODES[420] = "Enhance Your Calm" + use Rack::Attack + Rack::Attack.blacklist('block client requesting ruby builds') do |req| + req.ip == "130.15.4.210" + end + + Rack::Attack.blacklisted_response = lambda do |env| + [ 420, {}, ['Enhance Your Calm']] + end + use Travis::Api::App::Cors use Raven::Rack if Endpoint.production? use Rack::Protection::PathTraversal @@ -87,12 +97,6 @@ module Travis::Api env['travis.global_prefix'] = env['SCRIPT_NAME'] end - use Rack::Attack - - Rack::Attack.blacklist('block client requesting ruby builds') do |req| - req.ip == "130.15.4.210" - end - use Travis::Api::App::Middleware::ScopeCheck use Travis::Api::App::Middleware::Logging use Travis::Api::App::Middleware::Metriks