Class: PxModule::Configuration
- Inherits:
-
Object
- Object
- PxModule::Configuration
- Defined in:
- lib/perimeterx/configuration.rb
Constant Summary collapse
- PX_DEFAULT =
{ :app_id => nil, :cookie_key => nil, :auth_token => nil, :module_enabled => true, :challenge_enabled => true, :encryption_enabled => true, :blocking_score => 100, :sensitive_headers => ["http-cookie", "http-cookies"], :api_timeout_connection => 1, :api_timeout => 1, :send_page_activities => true, :send_block_activities => true, :sdk_name => PxModule::SDK_NAME, :debug => false, :module_mode => PxModule::MONITOR_MODE, :sensitive_routes => [], :whitelist_routes => [], :ip_headers => [], :ip_header_function => nil, :bypass_monitor_header => nil, :risk_cookie_max_iterations => 5000, :first_party_enabled => true }
- CONFIG_SCHEMA =
{ :app_id => {types: [String], required: true}, :cookie_key => {types: [String], required: true}, :auth_token => {types: [String], required: true}, :module_enabled => {types: [FalseClass, TrueClass], required: false}, :challenge_enabled => {types: [FalseClass, TrueClass], required: false}, :encryption_enabled => {types: [FalseClass, TrueClass], required: false}, :blocking_score => {types: [Integer], required: false}, :sensitive_headers => {types: [Array], allowed_element_types: [String], required: false}, :api_timeout_connection => {types: [Integer, Float], required: false}, :api_timeout => {types: [Integer, Float], required: false}, :send_page_activities => {types: [FalseClass, TrueClass], required: false}, :send_block_activities => {types: [FalseClass, TrueClass], required: false}, :sdk_name => {types: [String], required: false}, :debug => {types: [FalseClass, TrueClass], required: false}, :module_mode => {types: [Integer], required: false}, :sensitive_routes => {types: [Array], allowed_element_types: [String], required: false}, :whitelist_routes => {types: [Array], allowed_element_types: [String, Regexp], required: false}, :ip_headers => {types: [Array], allowed_element_types: [String], required: false}, :ip_header_function => {types: [Proc], required: false}, :bypass_monitor_header => {types: [String], required: false}, :risk_cookie_max_iterations => {types: [Integer], required: false}, :custom_verification_handler => {types: [Proc], required: false}, :additional_activity_handler => {types: [Proc], required: false}, :custom_logo => {types: [String], required: false}, :css_ref => {types: [String], required: false}, :js_ref => {types: [String], required: false}, :custom_uri => {types: [Proc], required: false}, :first_party_enabled => {types: [FalseClass, TrueClass], required: false} }
- @@basic_config =
nil
- @@mutex =
Mutex.new
Instance Attribute Summary collapse
-
#configuration ⇒ Object
Returns the value of attribute configuration.
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize(params) ⇒ Configuration
constructor
A new instance of Configuration.
Constructor Details
#initialize(params) ⇒ Configuration
Returns a new instance of Configuration.
77 78 79 80 81 82 83 84 85 86 87 88 89 90 |
# File 'lib/perimeterx/configuration.rb', line 77 def initialize(params) if ! @@basic_config.is_a?(Hash) raise PxConfigurationException.new('PerimeterX: Please initialize PerimeterX first') end # merge request configuration into the basic configuration @configuration = @@basic_config.merge(params) validate_hash_schema(@configuration, CONFIG_SCHEMA) if (! @configuration.key?(:backend_url)) @configuration[:backend_url] = "https://sapi-#{@configuration[:app_id].downcase}.perimeterx.net" end @configuration[:logger] = PxLogger.new(@configuration[:debug]) end |
Instance Attribute Details
#configuration ⇒ Object
Returns the value of attribute configuration.
10 11 12 |
# File 'lib/perimeterx/configuration.rb', line 10 def configuration @configuration end |
Class Method Details
.set_basic_config(basic_config) ⇒ Object
69 70 71 72 73 74 75 |
# File 'lib/perimeterx/configuration.rb', line 69 def self.set_basic_config(basic_config) if @@basic_config.nil? @@mutex.synchronize { @@basic_config = PX_DEFAULT.merge(basic_config) } end end |