Module: Threatstack::Instrumentation::Frameworks::TSRails
- Defined in:
- lib/instrumentation/frameworks/rails.rb
Defined Under Namespace
Modules: TSActionController
Constant Summary
collapse
- @@logger =
Threatstack::Utils::TSLogger.create 'RailsINST'
Class Method Summary
collapse
Class Method Details
.load_application_config ⇒ Object
28
29
30
31
32
33
|
# File 'lib/instrumentation/frameworks/rails.rb', line 28
def self.load_application_config
return nil unless Gem.loaded_specs.key?('rails') && defined?(Rails)
return Rails.configuration if Rails.respond_to?(:configuration)
return Rails.application.config if Rails.respond_to?(:application) && Rails.application.respond_to?(:config)
return nil
end
|
.patch_action_controller ⇒ Object
16
17
18
19
20
21
22
23
24
25
26
|
# File 'lib/instrumentation/frameworks/rails.rb', line 16
def self.patch_action_controller
@@logger.info 'Looking for Rails gem'
return unless defined?(::Rails) && defined?(::Rails::VERSION)
return unless defined?(ActionController) && defined?(ActionController::Base)
@@logger.info "Rails #{Rails::VERSION::MAJOR.to_s} gem found, instrumenting ActionController"
ActionController::Base.class_eval do
include Threatstack::Instrumentation::Frameworks::TSRails::TSActionController
end
@@logger.info 'Rails instrumentation done'
end
|
.report_application_config ⇒ Object
35
36
37
38
39
40
41
42
43
44
45
46
47
|
# File 'lib/instrumentation/frameworks/rails.rb', line 35
def self.report_application_config
@@logger.info 'Checking Rails application config'
config = self.load_application_config
if config.nil?
@@logger.warn 'Rails config not found, skipping config check'
return
end
@@logger.info 'Rails config loaded, relaying relevant values to server'
filtered = { :force_ssl => config.force_ssl }
Threatstack::Instrumentation.create_instrumentation_event('rails', 'configuration',
Threatstack::Constants::ROOT_DIR, 0, [filtered])
end
|