More log suppressions for rate limit exceeded

This commit is contained in:
Sam 2017-12-11 17:52:48 +11:00
parent 4986ebcf24
commit 63bdc4056d
3 changed files with 45 additions and 1 deletions

View File

@ -49,6 +49,9 @@ if (Rails.env.production? && SiteSetting.logging_provider == 'lograge') || ENV["
end
output
rescue RateLimiter::LimitExceeded
# no idea who this is, but they are limited
{}
rescue => e
Rails.logger.warn("Failed to append custom options: #{e.message}\n#{e.backtrace.join("\n")}")
{}

View File

@ -35,7 +35,11 @@ if Rails.env.production?
/^ActionController::BadRequest/,
# we can't do anything about invalid parameters
/Rack::QueryParser::InvalidParameterError/
/Rack::QueryParser::InvalidParameterError/,
# we handle this cleanly in the message bus middleware
# no point logging to logster
/RateLimiter::LimitExceeded.*/m
]
end

View File

@ -0,0 +1,37 @@
# encoding: UTF-8
require 'rails_helper'
describe 'admin rate limit' do
before do
RateLimiter.enable
end
after do
RateLimiter.disable
end
it 'can cleanly limit requests' do
admin = Fabricate(:admin)
api_key = Fabricate(:api_key, key: SecureRandom.hex, user: admin)
global_setting :max_admin_api_reqs_per_key_per_minute, 1
get '/admin/users.json', params: {
api_key: api_key.key,
api_username: admin.username
}
expect(response.status).to eq(200)
get '/admin/users.json', params: {
api_key: api_key.key,
api_username: admin.username
}
expect(response.status).to eq(429)
end
end