Skip to content

Commit 7281659

Browse files
author
Inbal Tako
committed
Fix parsing config file
1 parent 39ff03f commit 7281659

8 files changed

Lines changed: 28 additions & 32 deletions

File tree

Gemfile

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ source "https://rubygems.org"
33
gemspec
44
gem "rspec"
55
gem "rake"
6-
gem "parseconfig"
76
gem "simplecov", :require => false, :group => :test
87
gem "codecov", :require => false, :group => :test
98
gem "webmock", :require => false, :group => :test

Gemfile.lock

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -174,7 +174,6 @@ GEM
174174
nio4r (2.5.2)
175175
nokogiri (1.10.10)
176176
mini_portile2 (~> 2.4.0)
177-
parseconfig (1.0.8)
178177
public_suffix (4.0.5)
179178
rack (2.2.3)
180179
rack-protection (2.0.8.1)
@@ -263,7 +262,6 @@ DEPENDENCIES
263262
bundler (~> 2.0)
264263
codecov
265264
hanami
266-
parseconfig
267265
rails
268266
rake
269267
rspec

lib/api_manager.rb

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,9 @@ def verify(event_options)
2424
event = SDKEvent.new(event_options, @options)
2525

2626
begin
27-
res = @event_manager.send_sync(event, ApiRoute::VERIFY, false).to_json
28-
return VerifyResult.new(risk_level: res['riskLevel'], score: res['score'], triggers: res['triggers'])
27+
res = @event_manager.send_sync(event, ApiRoute::VERIFY, false)
28+
ver_result = JSON.parse(res.body)
29+
return VerifyResult.new(risk_level: ver_result['riskLevel'], score: ver_result['score'], triggers: ver_result['triggers'])
2930
rescue StandardError => e
3031
SecureNativeLogger.debug("Failed to call verify; #{e}")
3132
end

lib/config/configuration_builder.rb

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,10 +20,6 @@ def initialize(api_key: nil, api_url: 'https://api.securenative.com/collector/ap
2020
@fail_over_strategy = fail_over_strategy
2121
end
2222

23-
def self.default_config_builder
24-
ConfigurationBuilder.new
25-
end
26-
2723
def self.default_securenative_options
2824
SecureNativeOptions.new
2925
end
Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,20 @@
11
# frozen_string_literal: true
22

3-
require 'parseconfig'
3+
require 'yaml'
4+
require 'config/configuration_builder'
45

56
class ConfigurationManager
6-
DEFAULT_CONFIG_FILE = 'securenative.cfg'
7+
DEFAULT_CONFIG_FILE = 'securenative.yml'
78
CUSTOM_CONFIG_FILE_ENV_NAME = 'SECURENATIVE_CONFIG_FILE'
89
@config = nil
910

1011
def self.read_resource_file(resource_path)
11-
@config = ParseConfig.new(resource_path)
12-
1312
properties = {}
14-
@config.get_groups.each do |group|
15-
group.each do |key, value|
16-
properties[key.upcase] = value
17-
end
13+
begin
14+
@config = YAML.load_file(resource_path)
15+
properties = @config unless @config.nil?
16+
rescue StandardError => e
17+
SecureNativeLogger.error("Could not parse config file #{resource_path}; #{e}")
1818
end
1919
properties
2020
end
@@ -24,32 +24,32 @@ def self._get_resource_path(env_name)
2424
end
2525

2626
def self.config_builder
27-
ConfigurationBuilder.default_config_builder
27+
ConfigurationBuilder.new
2828
end
2929

3030
def self._get_env_or_default(properties, key, default)
31-
return Env[key] if Env[key]
31+
return ENV[key] if ENV[key]
3232
return properties[key] if properties[key]
3333

3434
default
3535
end
3636

3737
def self.load_config
38-
options = ConfigurationBuilder().default_securenative_options
38+
options = ConfigurationBuilder.default_securenative_options
3939

4040
resource_path = DEFAULT_CONFIG_FILE
41-
resource_path = Env[CUSTOM_CONFIG_FILE_ENV_NAME] if Env[CUSTOM_CONFIG_FILE_ENV_NAME]
41+
resource_path = ENV[CUSTOM_CONFIG_FILE_ENV_NAME] unless ENV[CUSTOM_CONFIG_FILE_ENV_NAME].nil?
4242

4343
properties = read_resource_file(resource_path)
4444

45-
ConfigurationBuilder(_get_env_or_default(properties, 'SECURENATIVE_API_KEY', options.api_key),
46-
_get_env_or_default(properties, 'SECURENATIVE_API_URL', options.api_url),
47-
_get_env_or_default(properties, 'SECURENATIVE_INTERVAL', options.interval),
48-
_get_env_or_default(properties, 'SECURENATIVE_MAX_EVENTS', options.max_events),
49-
_get_env_or_default(properties, 'SECURENATIVE_TIMEOUT', options.timeout),
50-
_get_env_or_default(properties, 'SECURENATIVE_AUTO_SEND', options.auto_send),
51-
_get_env_or_default(properties, 'SECURENATIVE_DISABLE', options.disable),
52-
_get_env_or_default(properties, 'SECURENATIVE_LOG_LEVEL', options.log_level),
53-
_get_env_or_default(properties, 'SECURENATIVE_FAILOVER_STRATEGY', options.fail_over_strategy))
45+
ConfigurationBuilder.new(api_key: _get_env_or_default(properties, 'SECURENATIVE_API_KEY', options.api_key),
46+
api_url: _get_env_or_default(properties, 'SECURENATIVE_API_URL', options.api_url),
47+
interval: _get_env_or_default(properties, 'SECURENATIVE_INTERVAL', options.interval),
48+
max_events: _get_env_or_default(properties, 'SECURENATIVE_MAX_EVENTS', options.max_events),
49+
timeout: _get_env_or_default(properties, 'SECURENATIVE_TIMEOUT', options.timeout),
50+
auto_send: _get_env_or_default(properties, 'SECURENATIVE_AUTO_SEND', options.auto_send),
51+
disable: _get_env_or_default(properties, 'SECURENATIVE_DISABLE', options.disable),
52+
log_level: _get_env_or_default(properties, 'SECURENATIVE_LOG_LEVEL', options.log_level),
53+
fail_over_strategy: _get_env_or_default(properties, 'SECURENATIVE_FAILOVER_STRATEGY', options.fail_over_strategy))
5454
end
5555
end

lib/context/rails_context.rb

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,8 @@ def self.get_method(request)
3535

3636
def self.get_headers(request)
3737
begin
38-
request.headers.to_h
38+
# Note: At the moment we're filtering out everything but user-agent since rails payload is way too big
39+
{"user-agent" => request.headers['HTTP_USER_AGENT']}
3940
rescue StandardError
4041
nil
4142
end

lib/event_manager.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ def send_sync(event, resource_path, retry_sending)
6565
SecureNativeLogger.debug("Attempting to send event #{event}")
6666
res = @http_client.post(resource_path, EventManager.serialize(event).to_json)
6767

68-
if res.nil? || res.code != 200
68+
if res.nil? || res.code != '200'
6969
SecureNativeLogger.info("SecureNative failed to call endpoint #{resource_path} with event #{event}. adding back to queue")
7070
item = QueueItem.new(resource_path, EventManager.serialize(event).to_json, retry_sending)
7171
@queue.append(item)

lib/securenative.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
require 'errors/securenative_config_error'
99
require 'enums/failover_strategy'
1010
require 'config/configuration_builder'
11+
require 'config/configuration_manager'
1112
require 'event_manager'
1213
require 'api_manager'
1314

0 commit comments

Comments
 (0)