securenative 0.1.28 → 0.1.33

Sign up to get free protection for your applications and to get access to all the features.
Files changed (102) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +2 -2
  3. data/README.md +23 -32
  4. data/lib/securenative.rb +49 -0
  5. data/lib/securenative/api_manager.rb +10 -17
  6. data/lib/securenative/client.rb +79 -0
  7. data/lib/securenative/{models/client_token.rb → client_token.rb} +0 -0
  8. data/lib/securenative/config/configuration_builder.rb +22 -22
  9. data/lib/securenative/config/configuration_manager.rb +42 -43
  10. data/lib/securenative/context.rb +65 -0
  11. data/lib/securenative/{models/device.rb → device.rb} +0 -0
  12. data/lib/securenative/enums/api_route.rb +5 -3
  13. data/lib/securenative/enums/risk_level.rb +7 -5
  14. data/{out/production/securenative-ruby/errors/securenative_config_error.rb → lib/securenative/errors/config_error.rb} +0 -0
  15. data/{out/production/securenative-ruby/errors/securenative_http_error.rb → lib/securenative/errors/http_error.rb} +0 -0
  16. data/{out/production/securenative-ruby/errors/securenative_invalid_options_error.rb → lib/securenative/errors/invalid_options_error.rb} +0 -0
  17. data/lib/securenative/errors/{securenative_invalid_uri_error.rb → invalid_uri_error.rb} +0 -0
  18. data/lib/securenative/errors/{securenative_parse_error.rb → parse_error.rb} +0 -2
  19. data/{out/production/securenative-ruby/errors/securenative_sdk_Illegal_state_error.rb → lib/securenative/errors/sdk_Illegal_state_error.rb} +0 -0
  20. data/{out/production/securenative-ruby/errors/securenative_sdk_error.rb → lib/securenative/errors/sdk_error.rb} +0 -0
  21. data/lib/securenative/event_manager.rb +125 -127
  22. data/lib/securenative/{models/event_options.rb → event_options.rb} +3 -7
  23. data/lib/securenative/{enums/event_types.rb → event_types.rb} +0 -0
  24. data/lib/securenative/{enums/failover_strategy.rb → failover_strategy.rb} +0 -0
  25. data/lib/securenative/frameworks/hanami.rb +46 -0
  26. data/lib/securenative/frameworks/rails.rb +48 -0
  27. data/lib/securenative/frameworks/sinatra.rb +46 -0
  28. data/lib/securenative/{http/securenative_http_client.rb → http_client.rb} +7 -12
  29. data/lib/securenative/{http/secure_native_http_response.rb → http_response.rb} +1 -1
  30. data/lib/securenative/{config/securenative_options.rb → options.rb} +1 -3
  31. data/lib/securenative/{models/request_context.rb → request_context.rb} +0 -0
  32. data/lib/securenative/{models/request_options.rb → request_options.rb} +0 -0
  33. data/lib/securenative/{models/sdk_event.rb → sdk_event.rb} +4 -11
  34. data/lib/securenative/{models/user_traits.rb → user_traits.rb} +0 -0
  35. data/lib/securenative/utils/date_utils.rb +6 -4
  36. data/lib/securenative/utils/encryption_utils.rb +34 -37
  37. data/lib/securenative/utils/ip_utils.rb +15 -15
  38. data/lib/securenative/utils/{secure_native_logger.rb → log.rb} +1 -1
  39. data/lib/securenative/utils/request_utils.rb +66 -47
  40. data/lib/securenative/utils/signature_utils.rb +12 -12
  41. data/lib/securenative/utils/utils.rb +6 -4
  42. data/lib/securenative/utils/version_utils.rb +9 -7
  43. data/lib/securenative/{models/verify_result.rb → verify_result.rb} +0 -0
  44. data/lib/securenative/{errors/securenative_sdk_error.rb → version.rb} +1 -2
  45. data/securenative.gemspec +5 -2
  46. data/{out/test/securenative-ruby → spec}/spec_helper.rb +0 -0
  47. metadata +35 -83
  48. data/lib/securenative/context/hanami_context.rb +0 -44
  49. data/lib/securenative/context/rails_context.rb +0 -46
  50. data/lib/securenative/context/securenative_context.rb +0 -69
  51. data/lib/securenative/context/sinatra_context.rb +0 -44
  52. data/lib/securenative/errors/securenative_config_error.rb +0 -6
  53. data/lib/securenative/errors/securenative_http_error.rb +0 -6
  54. data/lib/securenative/errors/securenative_invalid_options_error.rb +0 -6
  55. data/lib/securenative/errors/securenative_sdk_Illegal_state_error.rb +0 -6
  56. data/lib/securenative/sdk.rb +0 -85
  57. data/out/production/securenative-ruby/api_manager.rb +0 -39
  58. data/out/production/securenative-ruby/config/configuration_builder.rb +0 -27
  59. data/out/production/securenative-ruby/config/configuration_manager.rb +0 -56
  60. data/out/production/securenative-ruby/config/securenative_options.rb +0 -23
  61. data/out/production/securenative-ruby/context/hanami_context.rb +0 -42
  62. data/out/production/securenative-ruby/context/rails_context.rb +0 -44
  63. data/out/production/securenative-ruby/context/securenative_context.rb +0 -67
  64. data/out/production/securenative-ruby/context/sinatra_context.rb +0 -42
  65. data/out/production/securenative-ruby/enums/api_route.rb +0 -6
  66. data/out/production/securenative-ruby/enums/event_types.rb +0 -23
  67. data/out/production/securenative-ruby/enums/failover_strategy.rb +0 -6
  68. data/out/production/securenative-ruby/enums/risk_level.rb +0 -7
  69. data/out/production/securenative-ruby/errors/securenative_invalid_uri_error.rb +0 -4
  70. data/out/production/securenative-ruby/errors/securenative_parse_error.rb +0 -4
  71. data/out/production/securenative-ruby/event_manager.rb +0 -157
  72. data/out/production/securenative-ruby/http/secure_native_http_response.rb +0 -12
  73. data/out/production/securenative-ruby/http/securenative_http_client.rb +0 -50
  74. data/out/production/securenative-ruby/models/client_token.rb +0 -12
  75. data/out/production/securenative-ruby/models/device.rb +0 -10
  76. data/out/production/securenative-ruby/models/event_options.rb +0 -37
  77. data/out/production/securenative-ruby/models/request_context.rb +0 -18
  78. data/out/production/securenative-ruby/models/request_options.rb +0 -12
  79. data/out/production/securenative-ruby/models/sdk_event.rb +0 -49
  80. data/out/production/securenative-ruby/models/user_traits.rb +0 -13
  81. data/out/production/securenative-ruby/models/verify_result.rb +0 -16
  82. data/out/production/securenative-ruby/securenative.rb +0 -83
  83. data/out/production/securenative-ruby/utils/date_utils.rb +0 -9
  84. data/out/production/securenative-ruby/utils/encryption_utils.rb +0 -49
  85. data/out/production/securenative-ruby/utils/ip_utils.rb +0 -23
  86. data/out/production/securenative-ruby/utils/request_utils.rb +0 -69
  87. data/out/production/securenative-ruby/utils/secure_native_logger.rb +0 -44
  88. data/out/production/securenative-ruby/utils/signature_utils.rb +0 -16
  89. data/out/production/securenative-ruby/utils/utils.rb +0 -9
  90. data/out/production/securenative-ruby/utils/version_utils.rb +0 -11
  91. data/out/test/securenative-ruby/spec_api_manager.rb +0 -87
  92. data/out/test/securenative-ruby/spec_context_builder.rb +0 -87
  93. data/out/test/securenative-ruby/spec_date_utils.rb +0 -13
  94. data/out/test/securenative-ruby/spec_encryption_utils.rb +0 -26
  95. data/out/test/securenative-ruby/spec_event_manager.rb +0 -93
  96. data/out/test/securenative-ruby/spec_ip_utils.rb +0 -41
  97. data/out/test/securenative-ruby/spec_request_utils.rb +0 -25
  98. data/out/test/securenative-ruby/spec_sdk_event.rb +0 -24
  99. data/out/test/securenative-ruby/spec_securenative.rb +0 -61
  100. data/out/test/securenative-ruby/spec_securenative_http_client.rb +0 -31
  101. data/out/test/securenative-ruby/spec_signature_utils.rb +0 -18
  102. data/out/test/securenative-ruby/spec_version_util.rb +0 -10
@@ -1,18 +1,18 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'openssl'
4
-
5
3
  module SecureNative
6
- class SignatureUtils
7
- SIGNATURE_HEADER = 'x-securenative'
4
+ module Utils
5
+ class SignatureUtils
6
+ SIGNATURE_HEADER = 'x-securenative'
8
7
 
9
- def self.valid_signature?(api_key, payload, header_signature)
10
- key = api_key.encode('utf-8')
11
- body = payload.encode('utf-8')
12
- calculated_signature = OpenSSL::HMAC.hexdigest(OpenSSL::Digest.new('sha512'), key, body)
13
- calculated_signature.eql? header_signature
14
- rescue StandardError
15
- false
8
+ def self.valid_signature?(api_key, payload, header_signature)
9
+ key = api_key.encode('utf-8')
10
+ body = payload.encode('utf-8')
11
+ calculated_signature = OpenSSL::HMAC.hexdigest(OpenSSL::Digest.new('sha512'), key, body)
12
+ calculated_signature.eql? header_signature
13
+ rescue StandardError
14
+ false
15
+ end
16
16
  end
17
17
  end
18
- end
18
+ end
@@ -1,11 +1,13 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module SecureNative
4
- class Utils
5
- def self.null_or_empty?(string)
6
- return true if !string || string.empty? || string.nil?
4
+ module Utils
5
+ class Utils
6
+ def self.null_or_empty?(string)
7
+ return true if !string || string.empty? || string.nil?
7
8
 
8
- false
9
+ false
10
+ end
9
11
  end
10
12
  end
11
13
  end
@@ -1,13 +1,15 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module SecureNative
4
- class VersionUtils
5
- def self.version
6
- begin
7
- Gem.loaded_specs['securenative'].version.to_s
8
- rescue StandardError
9
- 'unknown'
4
+ module Utils
5
+ class VersionUtils
6
+ def self.version
7
+ begin
8
+ Gem.loaded_specs['securenative'].version.to_s
9
+ rescue StandardError
10
+ 'unknown'
11
+ end
10
12
  end
11
13
  end
12
14
  end
13
- end
15
+ end
@@ -1,6 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module SecureNative
4
- class SecureNativeSDKError < StandardError
5
- end
4
+ VERSION = '0.1.33'
6
5
  end
@@ -2,25 +2,28 @@
2
2
 
3
3
  lib = File.expand_path('lib', __dir__)
4
4
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
5
- require_relative 'lib/securenative/utils/version_utils'
5
+ require 'securenative'
6
6
 
7
7
  Gem::Specification.new do |spec|
8
8
  spec.name = 'securenative'
9
- spec.version = '0.1.28'
9
+ spec.version = SecureNative::VERSION
10
10
  spec.authors = ['SecureNative']
11
11
  spec.email = ['support@securenative.com']
12
+ spec.required_ruby_version = '>= 2.4'
12
13
 
13
14
  spec.summary = 'SecureNative SDK for Ruby'
14
15
  spec.homepage = 'https://www.securenative.com'
15
16
  spec.license = 'MIT'
16
17
 
17
18
  spec.metadata['homepage_uri'] = spec.homepage
19
+ spec.test_files = Dir['spec//*']
18
20
 
19
21
  # Specify which files should be added to the gem when it is released.
20
22
  # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
21
23
  spec.files = Dir.chdir(File.expand_path('..', __FILE__)) do
22
24
  `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
23
25
  end
26
+
24
27
  spec.bindir = 'exe'
25
28
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
26
29
  spec.require_paths = ['lib']
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: securenative
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.28
4
+ version: 0.1.33
5
5
  platform: ruby
6
6
  authors:
7
7
  - SecureNative
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-09-24 00:00:00.000000000 Z
11
+ date: 2020-10-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -58,98 +58,49 @@ files:
58
58
  - Rakefile
59
59
  - bin/console
60
60
  - bin/setup
61
+ - lib/securenative.rb
61
62
  - lib/securenative/api_manager.rb
63
+ - lib/securenative/client.rb
64
+ - lib/securenative/client_token.rb
62
65
  - lib/securenative/config/configuration_builder.rb
63
66
  - lib/securenative/config/configuration_manager.rb
64
- - lib/securenative/config/securenative_options.rb
65
- - lib/securenative/context/hanami_context.rb
66
- - lib/securenative/context/rails_context.rb
67
- - lib/securenative/context/securenative_context.rb
68
- - lib/securenative/context/sinatra_context.rb
67
+ - lib/securenative/context.rb
68
+ - lib/securenative/device.rb
69
69
  - lib/securenative/enums/api_route.rb
70
- - lib/securenative/enums/event_types.rb
71
- - lib/securenative/enums/failover_strategy.rb
72
70
  - lib/securenative/enums/risk_level.rb
73
- - lib/securenative/errors/securenative_config_error.rb
74
- - lib/securenative/errors/securenative_http_error.rb
75
- - lib/securenative/errors/securenative_invalid_options_error.rb
76
- - lib/securenative/errors/securenative_invalid_uri_error.rb
77
- - lib/securenative/errors/securenative_parse_error.rb
78
- - lib/securenative/errors/securenative_sdk_Illegal_state_error.rb
79
- - lib/securenative/errors/securenative_sdk_error.rb
71
+ - lib/securenative/errors/config_error.rb
72
+ - lib/securenative/errors/http_error.rb
73
+ - lib/securenative/errors/invalid_options_error.rb
74
+ - lib/securenative/errors/invalid_uri_error.rb
75
+ - lib/securenative/errors/parse_error.rb
76
+ - lib/securenative/errors/sdk_Illegal_state_error.rb
77
+ - lib/securenative/errors/sdk_error.rb
80
78
  - lib/securenative/event_manager.rb
81
- - lib/securenative/http/secure_native_http_response.rb
82
- - lib/securenative/http/securenative_http_client.rb
83
- - lib/securenative/models/client_token.rb
84
- - lib/securenative/models/device.rb
85
- - lib/securenative/models/event_options.rb
86
- - lib/securenative/models/request_context.rb
87
- - lib/securenative/models/request_options.rb
88
- - lib/securenative/models/sdk_event.rb
89
- - lib/securenative/models/user_traits.rb
90
- - lib/securenative/models/verify_result.rb
91
- - lib/securenative/sdk.rb
79
+ - lib/securenative/event_options.rb
80
+ - lib/securenative/event_types.rb
81
+ - lib/securenative/failover_strategy.rb
82
+ - lib/securenative/frameworks/hanami.rb
83
+ - lib/securenative/frameworks/rails.rb
84
+ - lib/securenative/frameworks/sinatra.rb
85
+ - lib/securenative/http_client.rb
86
+ - lib/securenative/http_response.rb
87
+ - lib/securenative/options.rb
88
+ - lib/securenative/request_context.rb
89
+ - lib/securenative/request_options.rb
90
+ - lib/securenative/sdk_event.rb
91
+ - lib/securenative/user_traits.rb
92
92
  - lib/securenative/utils/date_utils.rb
93
93
  - lib/securenative/utils/encryption_utils.rb
94
94
  - lib/securenative/utils/ip_utils.rb
95
+ - lib/securenative/utils/log.rb
95
96
  - lib/securenative/utils/request_utils.rb
96
- - lib/securenative/utils/secure_native_logger.rb
97
97
  - lib/securenative/utils/signature_utils.rb
98
98
  - lib/securenative/utils/utils.rb
99
99
  - lib/securenative/utils/version_utils.rb
100
- - out/production/securenative-ruby/api_manager.rb
101
- - out/production/securenative-ruby/config/configuration_builder.rb
102
- - out/production/securenative-ruby/config/configuration_manager.rb
103
- - out/production/securenative-ruby/config/securenative_options.rb
104
- - out/production/securenative-ruby/context/hanami_context.rb
105
- - out/production/securenative-ruby/context/rails_context.rb
106
- - out/production/securenative-ruby/context/securenative_context.rb
107
- - out/production/securenative-ruby/context/sinatra_context.rb
108
- - out/production/securenative-ruby/enums/api_route.rb
109
- - out/production/securenative-ruby/enums/event_types.rb
110
- - out/production/securenative-ruby/enums/failover_strategy.rb
111
- - out/production/securenative-ruby/enums/risk_level.rb
112
- - out/production/securenative-ruby/errors/securenative_config_error.rb
113
- - out/production/securenative-ruby/errors/securenative_http_error.rb
114
- - out/production/securenative-ruby/errors/securenative_invalid_options_error.rb
115
- - out/production/securenative-ruby/errors/securenative_invalid_uri_error.rb
116
- - out/production/securenative-ruby/errors/securenative_parse_error.rb
117
- - out/production/securenative-ruby/errors/securenative_sdk_Illegal_state_error.rb
118
- - out/production/securenative-ruby/errors/securenative_sdk_error.rb
119
- - out/production/securenative-ruby/event_manager.rb
120
- - out/production/securenative-ruby/http/secure_native_http_response.rb
121
- - out/production/securenative-ruby/http/securenative_http_client.rb
122
- - out/production/securenative-ruby/models/client_token.rb
123
- - out/production/securenative-ruby/models/device.rb
124
- - out/production/securenative-ruby/models/event_options.rb
125
- - out/production/securenative-ruby/models/request_context.rb
126
- - out/production/securenative-ruby/models/request_options.rb
127
- - out/production/securenative-ruby/models/sdk_event.rb
128
- - out/production/securenative-ruby/models/user_traits.rb
129
- - out/production/securenative-ruby/models/verify_result.rb
130
- - out/production/securenative-ruby/securenative.rb
131
- - out/production/securenative-ruby/utils/date_utils.rb
132
- - out/production/securenative-ruby/utils/encryption_utils.rb
133
- - out/production/securenative-ruby/utils/ip_utils.rb
134
- - out/production/securenative-ruby/utils/request_utils.rb
135
- - out/production/securenative-ruby/utils/secure_native_logger.rb
136
- - out/production/securenative-ruby/utils/signature_utils.rb
137
- - out/production/securenative-ruby/utils/utils.rb
138
- - out/production/securenative-ruby/utils/version_utils.rb
139
- - out/test/securenative-ruby/spec_api_manager.rb
140
- - out/test/securenative-ruby/spec_context_builder.rb
141
- - out/test/securenative-ruby/spec_date_utils.rb
142
- - out/test/securenative-ruby/spec_encryption_utils.rb
143
- - out/test/securenative-ruby/spec_event_manager.rb
144
- - out/test/securenative-ruby/spec_helper.rb
145
- - out/test/securenative-ruby/spec_ip_utils.rb
146
- - out/test/securenative-ruby/spec_request_utils.rb
147
- - out/test/securenative-ruby/spec_sdk_event.rb
148
- - out/test/securenative-ruby/spec_securenative.rb
149
- - out/test/securenative-ruby/spec_securenative_http_client.rb
150
- - out/test/securenative-ruby/spec_signature_utils.rb
151
- - out/test/securenative-ruby/spec_version_util.rb
100
+ - lib/securenative/verify_result.rb
101
+ - lib/securenative/version.rb
152
102
  - securenative.gemspec
103
+ - spec//spec_helper.rb
153
104
  homepage: https://www.securenative.com
154
105
  licenses:
155
106
  - MIT
@@ -163,15 +114,16 @@ required_ruby_version: !ruby/object:Gem::Requirement
163
114
  requirements:
164
115
  - - ">="
165
116
  - !ruby/object:Gem::Version
166
- version: '0'
117
+ version: '2.4'
167
118
  required_rubygems_version: !ruby/object:Gem::Requirement
168
119
  requirements:
169
120
  - - ">="
170
121
  - !ruby/object:Gem::Version
171
122
  version: '0'
172
123
  requirements: []
173
- rubygems_version: 3.0.3
124
+ rubygems_version: 3.1.2
174
125
  signing_key:
175
126
  specification_version: 4
176
127
  summary: SecureNative SDK for Ruby
177
- test_files: []
128
+ test_files:
129
+ - spec//spec_helper.rb
@@ -1,44 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module SecureNative
4
- class HanamiContext
5
- SECURENATIVE_COOKIE = '_sn'
6
-
7
- def self.get_client_token(request)
8
- begin
9
- request.env[SECURENATIVE_COOKIE]
10
- rescue StandardError
11
- begin
12
- request.cookies[SECURENATIVE_COOKIE]
13
- rescue StandardError
14
- nil
15
- end
16
- end
17
- end
18
-
19
- def self.get_url(request)
20
- begin
21
- request.env['REQUEST_PATH']
22
- rescue StandardError
23
- nil
24
- end
25
- end
26
-
27
- def self.get_method(request)
28
- begin
29
- request.request_method
30
- rescue StandardError
31
- nil
32
- end
33
- end
34
-
35
- def self.get_headers(request)
36
- begin
37
- # Note: At the moment we're filtering out everything but user-agent since ruby's payload is way too big
38
- { 'user-agent' => request.env['HTTP_USER_AGENT'] }
39
- rescue StandardError
40
- nil
41
- end
42
- end
43
- end
44
- end
@@ -1,46 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module SecureNative
4
- class RailsContext
5
- SECURENATIVE_COOKIE = '_sn'
6
-
7
- def self.get_client_token(request)
8
- begin
9
- request.cookies[SECURENATIVE_COOKIE]
10
- rescue StandardError
11
- nil
12
- end
13
- end
14
-
15
- def self.get_url(request)
16
- begin
17
- # Rails >= 3.x
18
- request.fullpath
19
- rescue StandardError
20
- begin
21
- # Rails < 3.x & Sinatra
22
- request.url if url.nil?
23
- rescue StandardError
24
- nil
25
- end
26
- end
27
- end
28
-
29
- def self.get_method(request)
30
- begin
31
- request.method
32
- rescue StandardError
33
- nil
34
- end
35
- end
36
-
37
- def self.get_headers(request)
38
- begin
39
- # Note: At the moment we're filtering out everything but user-agent since ruby's payload is way too big
40
- {'user-agent' => request.env['HTTP_USER_AGENT']}
41
- rescue StandardError
42
- nil
43
- end
44
- end
45
- end
46
- end
@@ -1,69 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'securenative/utils/request_utils'
4
- require 'securenative/utils/utils'
5
- require 'securenative/context/rails_context'
6
- require 'securenative/context/hanami_context'
7
- require 'securenative/context/sinatra_context'
8
-
9
- module SecureNative
10
- class SecureNativeContext
11
- attr_reader :client_token, :ip, :remote_ip, :headers, :url, :http_method, :body
12
- attr_writer :client_token, :ip, :remote_ip, :headers, :url, :http_method, :body
13
-
14
- SECURENATIVE_COOKIE = '_sn'
15
-
16
- def initialize(client_token: '', ip: '', remote_ip: '', headers: nil, url: '', http_method: '', body: '')
17
- @client_token = client_token
18
- @ip = ip
19
- @remote_ip = remote_ip
20
- @headers = headers
21
- @url = url
22
- @http_method = http_method
23
- @body = body
24
- end
25
-
26
- def self.default_context_builder
27
- SecureNativeContext.new
28
- end
29
-
30
- def self.from_http_request(request)
31
- client_token = RailsContext.get_client_token(request)
32
- client_token = SinatraContext.get_client_token(request) if client_token.nil?
33
- client_token = HanamiContext.get_client_token(request) if client_token.nil?
34
-
35
- begin
36
- headers = RailsContext.get_headers(request)
37
- headers = SinatraContext.get_headers(request) if headers.nil?
38
- headers = HanamiContext.get_headers(request) if headers.nil?
39
-
40
- # Standard Ruby request
41
- headers = request.header.to_hash if headers.nil?
42
- rescue StandardError
43
- headers = []
44
- end
45
-
46
- url = RailsContext.get_url(request)
47
- url = SinatraContext.get_url(request) if url.nil?
48
- url = HanamiContext.get_url(request) if url.nil?
49
- url = '' if url.nil?
50
-
51
- method = RailsContext.get_method(request)
52
- method = SinatraContext.get_method(request) if method.nil?
53
- method = HanamiContext.get_method(request) if method.nil?
54
- method = '' if method.nil?
55
-
56
- begin
57
- body = request.body.to_s
58
- rescue StandardError
59
- body = ''
60
- end
61
-
62
- client_token = RequestUtils.get_secure_header_from_request(headers) if Utils.null_or_empty?(client_token)
63
-
64
- SecureNativeContext.new(client_token: client_token, ip: RequestUtils.get_client_ip_from_request(request),
65
- remote_ip: RequestUtils.get_remote_ip_from_request(request),
66
- headers: headers, url: url, http_method: method || '', body: body)
67
- end
68
- end
69
- end
@@ -1,44 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module SecureNative
4
- class SinatraContext
5
- SECURENATIVE_COOKIE = '_sn'
6
-
7
- def self.get_client_token(request)
8
- begin
9
- request.env[SECURENATIVE_COOKIE]
10
- rescue StandardError
11
- begin
12
- request.cookies[SECURENATIVE_COOKIE]
13
- rescue StandardError
14
- nil
15
- end
16
- end
17
- end
18
-
19
- def self.get_url(request)
20
- begin
21
- request.env['REQUEST_URI']
22
- rescue StandardError
23
- nil
24
- end
25
- end
26
-
27
- def self.get_method(request)
28
- begin
29
- request.env['REQUEST_METHOD']
30
- rescue StandardError
31
- nil
32
- end
33
- end
34
-
35
- def self.get_headers(request)
36
- begin
37
- # Note: At the moment we're filtering out everything but user-agent since ruby's payload is way too big
38
- {'user-agent' => request.env['HTTP_USER_AGENT']}
39
- rescue StandardError
40
- nil
41
- end
42
- end
43
- end
44
- end