summaryrefslogtreecommitdiff
path: root/config/initializers/rack_attack_git_basic_auth.rb
blob: 71e5e2969ce83809f7bb63b78d8868fccc2f8645 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
# Tell the Rack::Attack Rack middleware to maintain an IP blacklist.
# We update the blacklist in Gitlab::Auth::IpRateLimiter.
Rack::Attack.blocklist('Git HTTP Basic Auth') do |req|
  rate_limiter = Gitlab::Auth::IpRateLimiter.new(req.ip)

  next false if !rate_limiter.enabled? || rate_limiter.trusted_ip?

  Rack::Attack::Allow2Ban.filter(req.ip, Gitlab.config.rack_attack.git_basic_auth) do
    # This block only gets run if the IP was not already banned.
    # Return false, meaning that we do not see anything wrong with the
    # request at this time
    false
  end
end