Class: TShield::Configuration

Inherits:
Object
  • Object
show all
Defined in:
lib/tshield/configuration.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(attributes) ⇒ Configuration

Returns a new instance of Configuration.



14
15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/tshield/configuration.rb', line 14

def initialize(attributes)
  attributes.each do |key, value|
    send("#{key}=", value)
  end

  if File.exists?('filters')
    Dir.entries('filters').each do |entry|
      next if entry =~ /^\.\.?$/
      puts "loading filter #{entry}"
      entry.gsub!('.rb', '')
      require File.join('.', 'filters', entry)
    end
  end
end

Instance Attribute Details

#domainsObject

Returns the value of attribute domains.



10
11
12
# File 'lib/tshield/configuration.rb', line 10

def domains
  @domains
end

#requestObject

Returns the value of attribute request.



9
10
11
# File 'lib/tshield/configuration.rb', line 9

def request
  @request
end

#session_pathObject



76
77
78
# File 'lib/tshield/configuration.rb', line 76

def session_path
  @session_path || '/sessions'
end

#tcp_serversObject

Returns the value of attribute tcp_servers.



11
12
13
# File 'lib/tshield/configuration.rb', line 11

def tcp_servers
  @tcp_servers
end

Class Method Details

.singletonObject



29
30
31
# File 'lib/tshield/configuration.rb', line 29

def self.singleton
  @@configuration ||= load_configuration
end

Instance Method Details

#admin_request_pathObject



84
85
86
# File 'lib/tshield/configuration.rb', line 84

def admin_request_path
  @admin_request_path || '/admin/requests'
end

#admin_session_pathObject



80
81
82
# File 'lib/tshield/configuration.rb', line 80

def admin_session_path
  @admin_session_path || '/admin/sessions'
end

#cache_request?(domain) ⇒ Boolean

Returns:

  • (Boolean)


58
59
60
61
# File 'lib/tshield/configuration.rb', line 58

def cache_request?(domain)
  return true unless domains[domain].include?('cache_request')
  domains[domain]['cache_request']
end

#get_after_filters(domain) ⇒ Object



53
54
55
56
# File 'lib/tshield/configuration.rb', line 53

def get_after_filters(domain)
  get_filters(domain)
    .select { |k| k.ancestors.include?(TShield::AfterFilter) }
end

#get_before_filters(domain) ⇒ Object



48
49
50
51
# File 'lib/tshield/configuration.rb', line 48

def get_before_filters(domain)
  get_filters(domain)
    .select { |k| k.ancestors.include?(TShield::BeforeFilter) }
end

#get_domain_for(path) ⇒ Object



33
34
35
36
37
38
# File 'lib/tshield/configuration.rb', line 33

def get_domain_for(path)
  domains.each do |url, config|
    config['paths'].each { |p| return url if path =~ Regexp.new(p) }
  end
  nil
end

#get_excluded_headers(domain) ⇒ Object



68
69
70
# File 'lib/tshield/configuration.rb', line 68

def get_excluded_headers(domain)
  domains[domain]['excluded_headers'] || []
end

#get_filters(domain) ⇒ Object



63
64
65
66
# File 'lib/tshield/configuration.rb', line 63

def get_filters(domain)
  (domains[domain]['filters'] || [])
    .collect { |f| Class.const_get(f) }
end

#get_headers(domain) ⇒ Object



40
41
42
# File 'lib/tshield/configuration.rb', line 40

def get_headers(domain)
  domains[domain]['headers'] || {}
end

#get_name(domain) ⇒ Object



44
45
46
# File 'lib/tshield/configuration.rb', line 44

def get_name(domain)
  domains[domain]['name'] || domain.gsub(/.*:\/\//, '')
end

#not_save_headers(domain) ⇒ Object



72
73
74
# File 'lib/tshield/configuration.rb', line 72

def not_save_headers(domain)
  domains[domain]['not_save_headers'] || []
end