Class: Itsi::Server::Config::IntrusionProtection

Inherits:
Middleware
  • Object
show all
Defined in:
lib/itsi/server/config/middleware/intrusion_protection.rb

Instance Method Summary collapse

Methods included from ConfigHelpers

included, #initialize, load_and_register, #normalize_keys!

Instance Method Details

#build!Object



33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
# File 'lib/itsi/server/config/middleware/intrusion_protection.rb', line 33

def build!
  @params[:banned_url_patterns] = Array(@params[:banned_url_patterns]).flatten.map do |pattern|
    if pattern.is_a?(Regexp)
      pattern.source
    else
      "#{pattern}$"
    end
  end

  @params[:banned_header_patterns].transform_values! do |patterns|
    Array(patterns).flatten.map do |pattern|
      if pattern.is_a?(Regexp)
        pattern.source
      else
        pattern
      end
    end
  end

  if location.middleware[:intrusion_protection]
    location.middleware[:intrusion_protection] = Array(location.middleware[:intrusion_protection]) + [@params]
  else
    location.middleware[:intrusion_protection] = @params
  end
end