Project

General

Profile

Download (562 Bytes) Statistics
| Branch: | Tag: | Revision:
module Foreman::Controller::BruteforceProtection
extend ActiveSupport::Concern

def count_login_failure
Rails.cache.write("failed_login_#{request.ip}", get_login_failures + 1, :expires_in => 5.minutes)
end

def get_login_failures
Rails.cache.fetch("failed_login_#{request.ip}") {0} if request.ip.present?
end

def bruteforce_attempt?
limit = Setting[:failed_login_attempts_limit].to_i
limit > 0 && get_login_failures >= limit
end

def log_bruteforce
logger.warn("Brute-force attempt blocked from IP: #{request.ip}")
end
end
(5-5/26)