mirror of
https://github.com/discourse/discourse.git
synced 2024-11-26 11:03:40 +08:00
More log suppressions for rate limit exceeded
This commit is contained in:
parent
4986ebcf24
commit
63bdc4056d
|
@ -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")}")
|
||||
{}
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
37
spec/integration/rate_limiting_spec.rb
Normal file
37
spec/integration/rate_limiting_spec.rb
Normal 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
|
Loading…
Reference in New Issue
Block a user