Commit e675bb0a authored by Rémy Coutable's avatar Rémy Coutable

Merge branch 'allow-disabling-of-rack-attack' into 'master'

Disable Rack Attack if admin disables it in config file

Grack::Auth already checks this variable. These holdouts were not disabled, leading to confusion when debugging a customer issue.

See merge request !3918
parents 872e8548 1d6fdcea
...@@ -17,8 +17,9 @@ paths_to_be_protected = [ ...@@ -17,8 +17,9 @@ paths_to_be_protected = [
# Create one big regular expression that matches strings starting with any of # Create one big regular expression that matches strings starting with any of
# the paths_to_be_protected. # the paths_to_be_protected.
paths_regex = Regexp.union(paths_to_be_protected.map { |path| /\A#{Regexp.escape(path)}/ }) paths_regex = Regexp.union(paths_to_be_protected.map { |path| /\A#{Regexp.escape(path)}/ })
rack_attack_enabled = Gitlab.config.rack_attack.git_basic_auth['enabled']
unless Rails.env.test? unless Rails.env.test? || !rack_attack_enabled
Rack::Attack.throttle('protected paths', limit: 10, period: 60.seconds) do |req| Rack::Attack.throttle('protected paths', limit: 10, period: 60.seconds) do |req|
if req.post? && req.path =~ paths_regex if req.post? && req.path =~ paths_regex
req.ip req.ip
......
unless Rails.env.test? rack_attack_enabled = Gitlab.config.rack_attack.git_basic_auth['enabled']
unless Rails.env.test? || !rack_attack_enabled
# Tell the Rack::Attack Rack middleware to maintain an IP blacklist. We will # Tell the Rack::Attack Rack middleware to maintain an IP blacklist. We will
# update the blacklist from Grack::Auth#authenticate_user. # update the blacklist from Grack::Auth#authenticate_user.
Rack::Attack.blacklist('Git HTTP Basic Auth') do |req| Rack::Attack.blacklist('Git HTTP Basic Auth') do |req|
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment