tcell_agent 0.4.0 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (199) hide show
  1. checksums.yaml +4 -4
  2. data/Rakefile +9 -22
  3. data/bin/tcell_agent +127 -132
  4. data/lib/tcell_agent/agent/event_processor.rb +23 -22
  5. data/lib/tcell_agent/agent/fork_pipe_manager.rb +7 -7
  6. data/lib/tcell_agent/agent/policy_manager.rb +20 -15
  7. data/lib/tcell_agent/agent/policy_types.rb +5 -11
  8. data/lib/tcell_agent/agent/static_agent.rb +5 -1
  9. data/lib/tcell_agent/agent.rb +6 -4
  10. data/lib/tcell_agent/api.rb +7 -9
  11. data/lib/tcell_agent/appsensor/meta_data.rb +11 -4
  12. data/lib/tcell_agent/authlogic.rb +3 -3
  13. data/lib/tcell_agent/cmdi.rb +6 -4
  14. data/lib/tcell_agent/config/unknown_options.rb +3 -1
  15. data/lib/tcell_agent/configuration.rb +47 -49
  16. data/lib/tcell_agent/devise.rb +2 -2
  17. data/lib/tcell_agent/hooks/login_fraud.rb +58 -29
  18. data/lib/tcell_agent/instrumentation.rb +11 -10
  19. data/lib/tcell_agent/logger.rb +2 -2
  20. data/lib/tcell_agent/patches/meta_data.rb +9 -13
  21. data/lib/tcell_agent/patches.rb +7 -10
  22. data/lib/tcell_agent/policies/clickjacking_policy.rb +4 -5
  23. data/lib/tcell_agent/policies/content_security_policy.rb +6 -12
  24. data/lib/tcell_agent/policies/dataloss_policy.rb +2 -2
  25. data/lib/tcell_agent/policies/http_redirect_policy.rb +2 -2
  26. data/lib/tcell_agent/policies/policy.rb +0 -2
  27. data/lib/tcell_agent/policies/rust_policies.rb +90 -0
  28. data/lib/tcell_agent/policies/secure_headers_policy.rb +2 -2
  29. data/lib/tcell_agent/rails/auth/authlogic.rb +42 -24
  30. data/lib/tcell_agent/rails/auth/devise.rb +44 -23
  31. data/lib/tcell_agent/rails/auth/doorkeeper.rb +33 -15
  32. data/lib/tcell_agent/rails/better_ip.rb +1 -1
  33. data/lib/tcell_agent/rails/csrf_exception.rb +2 -2
  34. data/lib/tcell_agent/rails/dlp/process_request.rb +1 -1
  35. data/lib/tcell_agent/rails/dlp.rb +6 -6
  36. data/lib/tcell_agent/rails/dlp_handler.rb +1 -1
  37. data/lib/tcell_agent/rails/js_agent_insert.rb +1 -1
  38. data/lib/tcell_agent/rails/middleware/body_filter_middleware.rb +1 -1
  39. data/lib/tcell_agent/rails/middleware/context_middleware.rb +3 -2
  40. data/lib/tcell_agent/rails/middleware/headers_middleware.rb +10 -9
  41. data/lib/tcell_agent/rails/routes/grape.rb +6 -6
  42. data/lib/tcell_agent/rails/routes.rb +8 -11
  43. data/lib/tcell_agent/rust/libtcellagent-0.11.1.dylib +0 -0
  44. data/lib/tcell_agent/rust/{libtcellagent-0.6.1.so → libtcellagent-0.11.1.so} +0 -0
  45. data/lib/tcell_agent/rust/models.rb +16 -0
  46. data/lib/tcell_agent/rust/tcellagent-0.11.1.dll +0 -0
  47. data/lib/tcell_agent/rust/whisperer.rb +119 -48
  48. data/lib/tcell_agent/sensor_events/appsensor_meta_event.rb +17 -20
  49. data/lib/tcell_agent/sensor_events/command_injection.rb +50 -5
  50. data/lib/tcell_agent/sensor_events/login_fraud.rb +34 -18
  51. data/lib/tcell_agent/sensor_events/patches.rb +21 -0
  52. data/lib/tcell_agent/sensor_events/server_agent.rb +3 -3
  53. data/lib/tcell_agent/sensor_events/util/utils.rb +4 -3
  54. data/lib/tcell_agent/servers/puma.rb +2 -2
  55. data/lib/tcell_agent/servers/unicorn.rb +1 -1
  56. data/lib/tcell_agent/utils/passwords.rb +28 -0
  57. data/lib/tcell_agent/version.rb +1 -1
  58. data/lib/tcell_agent.rb +1 -5
  59. data/spec/apps/rails-3.2/config/tcell_agent.config +15 -0
  60. data/spec/apps/rails-3.2/log/development.log +0 -0
  61. data/spec/apps/rails-3.2/log/test.log +12 -0
  62. data/spec/apps/rails-4.1/log/test.log +0 -0
  63. data/spec/lib/tcell_agent/agent/fork_pipe_manager_spec.rb +46 -45
  64. data/spec/lib/tcell_agent/agent/policy_manager_spec.rb +276 -164
  65. data/spec/lib/tcell_agent/agent/static_agent_spec.rb +44 -47
  66. data/spec/lib/tcell_agent/api/api_spec.rb +16 -16
  67. data/spec/lib/tcell_agent/appsensor/injections_reporter_spec.rb +131 -116
  68. data/spec/lib/tcell_agent/appsensor/meta_data_spec.rb +55 -51
  69. data/spec/lib/tcell_agent/cmdi_spec.rb +413 -436
  70. data/spec/lib/tcell_agent/config/unknown_options_spec.rb +145 -128
  71. data/spec/lib/tcell_agent/configuration_spec.rb +165 -169
  72. data/spec/lib/tcell_agent/hooks/login_fraud_spec.rb +144 -153
  73. data/spec/lib/tcell_agent/instrumentation_spec.rb +84 -85
  74. data/spec/lib/tcell_agent/patches_spec.rb +70 -111
  75. data/spec/lib/tcell_agent/policies/appsensor_policy_spec.rb +313 -244
  76. data/spec/lib/tcell_agent/policies/clickjacking_policy_spec.rb +28 -28
  77. data/spec/lib/tcell_agent/policies/command_injection_policy_spec.rb +643 -513
  78. data/spec/lib/tcell_agent/policies/content_security_policy_spec.rb +55 -102
  79. data/spec/lib/tcell_agent/policies/dataloss_policy_spec.rb +111 -134
  80. data/spec/lib/tcell_agent/policies/http_redirect_policy_spec.rb +141 -146
  81. data/spec/lib/tcell_agent/policies/http_tx_policy_spec.rb +8 -8
  82. data/spec/lib/tcell_agent/policies/login_policy_spec.rb +15 -17
  83. data/spec/lib/tcell_agent/policies/patches_policy_spec.rb +231 -559
  84. data/spec/lib/tcell_agent/policies/secure_headers_policy_spec.rb +27 -27
  85. data/spec/lib/tcell_agent/rails/better_ip_spec.rb +30 -34
  86. data/spec/lib/tcell_agent/rails/logger_spec.rb +50 -49
  87. data/spec/lib/tcell_agent/rails/middleware/appsensor_middleware_spec.rb +182 -199
  88. data/spec/lib/tcell_agent/rails/middleware/dlp_middleware_spec.rb +110 -84
  89. data/spec/lib/tcell_agent/rails/middleware/global_middleware_spec.rb +107 -85
  90. data/spec/lib/tcell_agent/rails/middleware/redirect_middleware_spec.rb +68 -40
  91. data/spec/lib/tcell_agent/rails/middleware/tcell_body_proxy_spec.rb +81 -67
  92. data/spec/lib/tcell_agent/rails/responses_spec.rb +33 -37
  93. data/spec/lib/tcell_agent/rails/routes/grape_spec.rb +116 -121
  94. data/spec/lib/tcell_agent/rails/routes/route_id_spec.rb +25 -28
  95. data/spec/lib/tcell_agent/rails/routes/routes_spec.rb +87 -85
  96. data/spec/lib/tcell_agent/rails_spec.rb +1 -6
  97. data/spec/lib/tcell_agent/rust/models_spec.rb +112 -0
  98. data/spec/lib/tcell_agent/rust/whisperer_spec.rb +502 -179
  99. data/spec/lib/tcell_agent/sensor_events/appsensor_meta_event_spec.rb +44 -33
  100. data/spec/lib/tcell_agent/sensor_events/dlp_spec.rb +4 -4
  101. data/spec/lib/tcell_agent/sensor_events/sessions_metric_spec.rb +183 -169
  102. data/spec/lib/tcell_agent/sensor_events/util/sanitizer_utilities_spec.rb +25 -25
  103. data/spec/lib/tcell_agent/utils/bounded_queue_spec.rb +17 -20
  104. data/spec/lib/tcell_agent/utils/params_spec.rb +28 -28
  105. data/spec/lib/tcell_agent/utils/passwords_spec.rb +143 -0
  106. data/spec/lib/tcell_agent/utils/strings_spec.rb +35 -35
  107. data/spec/lib/tcell_agent_spec.rb +8 -8
  108. data/spec/spec_helper.rb +4 -4
  109. data/spec/support/middleware_helper.rb +10 -10
  110. data/spec/support/static_agent_overrides.rb +16 -12
  111. data/tcell_agent.gemspec +17 -33
  112. metadata +43 -198
  113. data/LICENSE_libinjection +0 -32
  114. data/Readme.txt +0 -7
  115. data/ext/libinjection/extconf.rb +0 -3
  116. data/ext/libinjection/libinjection.h +0 -65
  117. data/ext/libinjection/libinjection_html5.c +0 -847
  118. data/ext/libinjection/libinjection_html5.h +0 -54
  119. data/ext/libinjection/libinjection_sqli.c +0 -2317
  120. data/ext/libinjection/libinjection_sqli.h +0 -295
  121. data/ext/libinjection/libinjection_sqli_data.h +0 -9004
  122. data/ext/libinjection/libinjection_wrap.c +0 -3525
  123. data/ext/libinjection/libinjection_xss.c +0 -531
  124. data/ext/libinjection/libinjection_xss.h +0 -21
  125. data/lib/tcell_agent/appsensor/injections_matcher.rb +0 -155
  126. data/lib/tcell_agent/appsensor/rules/appsensor_rule_manager.rb +0 -49
  127. data/lib/tcell_agent/appsensor/rules/appsensor_rule_set.rb +0 -67
  128. data/lib/tcell_agent/appsensor/rules/baserules.json +0 -467
  129. data/lib/tcell_agent/patches/block_rule.rb +0 -93
  130. data/lib/tcell_agent/patches/sensors_matcher.rb +0 -31
  131. data/lib/tcell_agent/policies/appsensor/cmdi_sensor.rb +0 -23
  132. data/lib/tcell_agent/policies/appsensor/fpt_sensor.rb +0 -23
  133. data/lib/tcell_agent/policies/appsensor/injection_sensor.rb +0 -117
  134. data/lib/tcell_agent/policies/appsensor/nullbyte_sensor.rb +0 -26
  135. data/lib/tcell_agent/policies/appsensor/retr_sensor.rb +0 -22
  136. data/lib/tcell_agent/policies/appsensor/sqli_sensor.rb +0 -34
  137. data/lib/tcell_agent/policies/appsensor/xss_sensor.rb +0 -34
  138. data/lib/tcell_agent/policies/appsensor_policy.rb +0 -49
  139. data/lib/tcell_agent/policies/command_injection_policy.rb +0 -196
  140. data/lib/tcell_agent/policies/honeytokens_policy.rb +0 -69
  141. data/lib/tcell_agent/policies/patches_policy.rb +0 -84
  142. data/lib/tcell_agent/rust/libtcellagent-0.6.1.dylib +0 -0
  143. data/lib/tcell_agent/rust/tcellagent-0.6.1.dll +0 -0
  144. data/spec/apps/rails-3.2/Gemfile +0 -25
  145. data/spec/apps/rails-3.2/Gemfile.lock +0 -126
  146. data/spec/apps/rails-3.2/Rakefile +0 -7
  147. data/spec/apps/rails-3.2/app/assets/images/rails.png +0 -0
  148. data/spec/apps/rails-3.2/app/assets/javascripts/application.js +0 -15
  149. data/spec/apps/rails-3.2/app/assets/stylesheets/application.css +0 -13
  150. data/spec/apps/rails-3.2/app/controllers/application_controller.rb +0 -3
  151. data/spec/apps/rails-3.2/app/controllers/t_cell_app_controller.rb +0 -5
  152. data/spec/apps/rails-3.2/app/helpers/application_helper.rb +0 -2
  153. data/spec/apps/rails-3.2/app/views/layouts/application.html.erb +0 -14
  154. data/spec/apps/rails-3.2/app/views/t_cell_app/index.html.erb +0 -1
  155. data/spec/apps/rails-3.2/config/application.rb +0 -63
  156. data/spec/apps/rails-3.2/config/boot.rb +0 -6
  157. data/spec/apps/rails-3.2/config/environment.rb +0 -5
  158. data/spec/apps/rails-3.2/config/environments/test.rb +0 -37
  159. data/spec/apps/rails-3.2/config/routes.rb +0 -11
  160. data/spec/apps/rails-3.2/config.ru +0 -4
  161. data/spec/apps/rails-4.1/Gemfile +0 -7
  162. data/spec/apps/rails-4.1/Gemfile.lock +0 -114
  163. data/spec/apps/rails-4.1/Rakefile +0 -6
  164. data/spec/apps/rails-4.1/app/assets/javascripts/application.js +0 -16
  165. data/spec/apps/rails-4.1/app/assets/stylesheets/application.css +0 -15
  166. data/spec/apps/rails-4.1/app/controllers/application_controller.rb +0 -5
  167. data/spec/apps/rails-4.1/app/controllers/t_cell_app_controller.rb +0 -5
  168. data/spec/apps/rails-4.1/app/helpers/application_helper.rb +0 -2
  169. data/spec/apps/rails-4.1/app/views/layouts/application.html.erb +0 -14
  170. data/spec/apps/rails-4.1/app/views/t_cell_app/index.html.erb +0 -1
  171. data/spec/apps/rails-4.1/config/application.rb +0 -24
  172. data/spec/apps/rails-4.1/config/boot.rb +0 -4
  173. data/spec/apps/rails-4.1/config/environment.rb +0 -5
  174. data/spec/apps/rails-4.1/config/environments/test.rb +0 -41
  175. data/spec/apps/rails-4.1/config/initializers/assets.rb +0 -8
  176. data/spec/apps/rails-4.1/config/initializers/backtrace_silencers.rb +0 -7
  177. data/spec/apps/rails-4.1/config/initializers/cookies_serializer.rb +0 -3
  178. data/spec/apps/rails-4.1/config/initializers/filter_parameter_logging.rb +0 -4
  179. data/spec/apps/rails-4.1/config/initializers/inflections.rb +0 -16
  180. data/spec/apps/rails-4.1/config/initializers/mime_types.rb +0 -4
  181. data/spec/apps/rails-4.1/config/initializers/session_store.rb +0 -3
  182. data/spec/apps/rails-4.1/config/initializers/wrap_parameters.rb +0 -14
  183. data/spec/apps/rails-4.1/config/locales/en.yml +0 -23
  184. data/spec/apps/rails-4.1/config/routes.rb +0 -12
  185. data/spec/apps/rails-4.1/config/secrets.yml +0 -22
  186. data/spec/apps/rails-4.1/config.ru +0 -4
  187. data/spec/controllers/application_controller.rb +0 -12
  188. data/spec/lib/tcell_agent/appsensor/injections_matcher_spec.rb +0 -522
  189. data/spec/lib/tcell_agent/appsensor/rules/appsensor_rule_manager_spec.rb +0 -23
  190. data/spec/lib/tcell_agent/appsensor/rules/appsensor_rule_set_spec.rb +0 -159
  191. data/spec/lib/tcell_agent/patches/block_rule_spec.rb +0 -458
  192. data/spec/lib/tcell_agent/patches/sensors_matcher_spec.rb +0 -35
  193. data/spec/lib/tcell_agent/policies/appsensor/cmdi_sensor_spec.rb +0 -139
  194. data/spec/lib/tcell_agent/policies/appsensor/fpt_sensor_spec.rb +0 -139
  195. data/spec/lib/tcell_agent/policies/appsensor/nullbyte_sensor_spec.rb +0 -167
  196. data/spec/lib/tcell_agent/policies/appsensor/retr_sensor_spec.rb +0 -139
  197. data/spec/lib/tcell_agent/policies/appsensor/sqli_sensor_spec.rb +0 -246
  198. data/spec/lib/tcell_agent/policies/appsensor/xss_sensor_spec.rb +0 -882
  199. data/spec/lib/tcell_agent/policies/honeytokens_policy_spec.rb +0 -22
@@ -2,11 +2,9 @@ require 'spec_helper'
2
2
 
3
3
  module TCellAgent
4
4
  module Policies
5
-
6
5
  describe HttpRedirectPolicy do
7
-
8
- context "with defaults" do
9
- it "returns true" do
6
+ context 'with defaults' do
7
+ it 'returns true' do
10
8
  http_redirect_plain = HttpRedirectPolicy.new
11
9
  expect(http_redirect_plain.policy_id).to eq(nil)
12
10
  expect(http_redirect_plain.enabled).to eq(false)
@@ -16,219 +14,218 @@ module TCellAgent
16
14
  end
17
15
  end
18
16
 
19
- describe "#suspicious_redirect?" do
17
+ describe '#suspicious_redirect?' do
20
18
  it "see's other domain" do
21
19
  http_redirect_policy = HttpRedirectPolicy.from_json({
22
- "policy_id"=>"x1a1",
23
- "data"=>{
24
- "enabled"=>true
25
- }
26
- })
27
- expect(http_redirect_policy.policy_id).to eq("x1a1")
20
+ 'policy_id' => 'x1a1',
21
+ 'data' => {
22
+ 'enabled' => true
23
+ }
24
+ })
25
+ expect(http_redirect_policy.policy_id).to eq('x1a1')
28
26
  expect(http_redirect_policy.enabled).to eq(true)
29
27
 
30
- expect(http_redirect_policy.suspicious_redirect?("test.google.com", "www.test.com")).to eq(true)
28
+ expect(http_redirect_policy.suspicious_redirect?('test.google.com', 'www.test.com')).to eq(true)
31
29
  end
32
30
 
33
- context "with wildcard domain" do
34
- it "should be false" do
31
+ context 'with wildcard domain' do
32
+ it 'should be false' do
35
33
  http_redirect_policy = HttpRedirectPolicy.from_json({
36
- "policy_id"=>"x1a1",
37
- "data"=>{
38
- "enabled"=>true,
39
- "whitelist"=>["*.google.com"]
40
- }
41
- })
34
+ 'policy_id' => 'x1a1',
35
+ 'data' => {
36
+ 'enabled' => true,
37
+ 'whitelist' => ['*.google.com']
38
+ }
39
+ })
42
40
 
43
- expect(http_redirect_policy.suspicious_redirect?("test.google.com", "www.test.com")).to eq(false)
41
+ expect(http_redirect_policy.suspicious_redirect?('test.google.com', 'www.test.com')).to eq(false)
44
42
 
45
- expect(http_redirect_policy.suspicious_redirect?("test.google.net", "www.test.com")).to eq(true)
43
+ expect(http_redirect_policy.suspicious_redirect?('test.google.net', 'www.test.com')).to eq(true)
46
44
  end
47
45
  end
48
46
  end
49
47
 
50
- describe "#enforce" do
51
- context "with a disabled policy" do
52
- it "should not enfore the policy" do
48
+ describe '#enforce' do
49
+ context 'with a disabled policy' do
50
+ it 'should not enfore the policy' do
53
51
  http_redirect_policy = HttpRedirectPolicy.from_json({
54
- "policy_id"=>"x1a1",
55
- "data"=>{
56
- "enabled"=>false,
57
- "block"=>true,
58
- "whitelist"=>["*.google.com"]
59
- }
60
- })
52
+ 'policy_id' => 'x1a1',
53
+ 'data' => {
54
+ 'enabled' => false,
55
+ 'block' => true,
56
+ 'whitelist' => ['*.google.com']
57
+ }
58
+ })
61
59
 
62
60
  expect(http_redirect_policy.enforce(
63
- "https://test.google.com", "www.test.com", "/path/a", "GET", "routex", "1.1.1.1", 400)
64
- ).to eq(nil)
61
+ 'https://test.google.com', 'www.test.com', '/path/a', 'GET', 'routex', '1.1.1.1', 400
62
+ )).to eq(nil)
65
63
  end
66
64
  end
67
65
 
68
- context "with an enabled policy" do
69
- context "redirecting to non whitelisted domain" do
70
- it "should block the redirect" do
66
+ context 'with an enabled policy' do
67
+ context 'redirecting to non whitelisted domain' do
68
+ it 'should block the redirect' do
71
69
  http_redirect_policy = HttpRedirectPolicy.from_json({
72
- "policy_id"=>"x1a1",
73
- "data"=>{
74
- "enabled"=>true,
75
- "block"=>true,
76
- "whitelist"=>["good.com"]
77
- }
78
- })
70
+ 'policy_id' => 'x1a1',
71
+ 'data' => {
72
+ 'enabled' => true,
73
+ 'block' => true,
74
+ 'whitelist' => ['good.com']
75
+ }
76
+ })
79
77
 
80
78
  expect(http_redirect_policy.enforce(
81
- "https://www.google.com/abc/def", "localhost", "/path/a", "GET", "routey", "1.1.1.1", 400
82
- )).to eq("/")
79
+ 'https://www.google.com/abc/def', 'localhost', '/path/a', 'GET', 'routey', '1.1.1.1', 400
80
+ )).to eq('/')
83
81
  end
84
82
  end
85
83
 
86
- context "with a wildcard whitelist" do
87
- it "should not enfore allowed domains properly" do
84
+ context 'with a wildcard whitelist' do
85
+ it 'should not enfore allowed domains properly' do
88
86
  http_redirect_policy = HttpRedirectPolicy.from_json({
89
- "policy_id"=>"x1a1",
90
- "data"=>{
91
- "enabled"=>true,
92
- "block"=>true,
93
- "whitelist"=>["*.allowed*.com"]
94
- }
95
- })
87
+ 'policy_id' => 'x1a1',
88
+ 'data' => {
89
+ 'enabled' => true,
90
+ 'block' => true,
91
+ 'whitelist' => ['*.allowed*.com']
92
+ }
93
+ })
96
94
 
97
95
  expect(http_redirect_policy.enforce(
98
- "https://allowed.com", "localhost", "/path/a", "GET", "routey", "1.1.1.1", 400
96
+ 'https://allowed.com', 'localhost', '/path/a', 'GET', 'routey', '1.1.1.1', 400
99
97
  )).to eq(nil)
100
98
 
101
99
  expect(http_redirect_policy.enforce(
102
- "https://www.alloweddomain.com", "localhost", "/path/a", "GET", "routey", "1.1.1.1", 400
100
+ 'https://www.alloweddomain.com', 'localhost', '/path/a', 'GET', 'routey', '1.1.1.1', 400
103
101
  )).to eq(nil)
104
102
  end
105
103
  end
106
104
  end
107
105
 
108
- context "with ports" do
109
- it "should remove ports in redirect event" do
106
+ context 'with ports' do
107
+ it 'should remove ports in redirect event' do
110
108
  http_redirect_policy = HttpRedirectPolicy.from_json({
111
- "policy_id" => "x1a1",
112
- "data" => {
113
- "enabled" => true,
114
- "block" => false
115
- }
116
- })
109
+ 'policy_id' => 'x1a1',
110
+ 'data' => {
111
+ 'enabled' => true,
112
+ 'block' => false
113
+ }
114
+ })
117
115
 
118
116
  expect(TCellAgent).to receive(:send_event).with({
119
- "event_type" => "redirect",
120
- "method" => "GET",
121
- "from_domain" => "www.test.com",
122
- "status_code" => 400 ,
123
- "remote_addr" => "1.1.1.1",
124
- "to" => "www.google.com",
125
- "from" => "/path/a",
126
- "rid" => "routex"
127
- })
117
+ 'event_type' => 'redirect',
118
+ 'method' => 'GET',
119
+ 'from_domain' => 'www.test.com',
120
+ 'status_code' => 400,
121
+ 'remote_addr' => '1.1.1.1',
122
+ 'to' => 'www.google.com',
123
+ 'from' => '/path/a',
124
+ 'rid' => 'routex'
125
+ })
128
126
 
129
127
  result = http_redirect_policy.enforce(
130
- "https://www.google.com:80", "http://www.test.com", "/path/a", "GET", "routex", 400, "1.1.1.1"
128
+ 'https://www.google.com:80', 'http://www.test.com', '/path/a', 'GET', 'routex', 400, '1.1.1.1'
131
129
  )
132
130
  expect(result).to eq(nil)
133
131
  end
134
132
  end
135
133
 
136
- context "dataSchemeAllowed" do
137
- context "is not allowed" do
138
- it "should send an event" do
134
+ context 'data_scheme_allowed' do
135
+ context 'is not allowed' do
136
+ it 'should send an event' do
139
137
  @http_redirect_policy = HttpRedirectPolicy.from_json({
140
- "policy_id" => "x1a1",
141
- "data" => {
142
- "enabled" => true,
143
- "whitelist" => [],
144
- "block" => false,
145
- "dataSchemeAllowed" => false
146
- }
147
- })
138
+ 'policy_id' => 'x1a1',
139
+ 'data' => {
140
+ 'enabled' => true,
141
+ 'whitelist' => [],
142
+ 'block' => false,
143
+ 'data_scheme_allowed' => false
144
+ }
145
+ })
148
146
 
149
147
  expect(TCellAgent).to receive(:send_event).with({
150
- "event_type" => "redirect",
151
- "method" => "GET",
152
- "from_domain" => "www.test.com",
153
- "status_code" => 400 ,
154
- "remote_addr" => "1.1.1.1",
155
- "to" => "data:text/html base64",
156
- "from" => "/path/a",
157
- "rid" => "routex"
158
- })
148
+ 'event_type' => 'redirect',
149
+ 'method' => 'GET',
150
+ 'from_domain' => 'www.test.com',
151
+ 'status_code' => 400,
152
+ 'remote_addr' => '1.1.1.1',
153
+ 'to' => 'data:text/html base64',
154
+ 'from' => '/path/a',
155
+ 'rid' => 'routex'
156
+ })
159
157
 
160
158
  result = @http_redirect_policy.enforce(
161
- "data:text/html base64,PHNjcmlwdD5hbGVydCgnWFNTJyk8L3NjcmlwdD4K",
162
- "http://www.test.com",
163
- "/path/a",
164
- "GET",
165
- "routex",
159
+ 'data:text/html base64,PHNjcmlwdD5hbGVydCgnWFNTJyk8L3NjcmlwdD4K',
160
+ 'http://www.test.com',
161
+ '/path/a',
162
+ 'GET',
163
+ 'routex',
166
164
  400,
167
- "1.1.1.1"
165
+ '1.1.1.1'
168
166
  )
169
167
  expect(result).to eq(nil)
170
168
  end
171
169
 
172
- context "and blocking is enabled" do
173
- it "should send an event and redirect to root" do
170
+ context 'and blocking is enabled' do
171
+ it 'should send an event and redirect to root' do
174
172
  @http_redirect_policy = HttpRedirectPolicy.from_json({
175
- "policy_id" => "x1a1",
176
- "data" => {
177
- "enabled" => true,
178
- "whitelist" => [],
179
- "block" => true,
180
- "dataSchemeAllowed" => false
181
- }
182
- })
173
+ 'policy_id' => 'x1a1',
174
+ 'data' => {
175
+ 'enabled' => true,
176
+ 'whitelist' => [],
177
+ 'block' => true,
178
+ 'data_scheme_allowed' => false
179
+ }
180
+ })
183
181
 
184
182
  expect(TCellAgent).to receive(:send_event).with({
185
- "event_type" => "redirect",
186
- "method" => "GET",
187
- "from_domain" => "www.test.com",
188
- "status_code" => 400 ,
189
- "remote_addr" => "1.1.1.1",
190
- "to" => "data:text/html base64",
191
- "from" => "/path/a",
192
- "rid" => "routex"
193
- })
183
+ 'event_type' => 'redirect',
184
+ 'method' => 'GET',
185
+ 'from_domain' => 'www.test.com',
186
+ 'status_code' => 400,
187
+ 'remote_addr' => '1.1.1.1',
188
+ 'to' => 'data:text/html base64',
189
+ 'from' => '/path/a',
190
+ 'rid' => 'routex'
191
+ })
194
192
 
195
193
  result = @http_redirect_policy.enforce(
196
- "data:text/html base64,PHNjcmlwdD5hbGVydCgnWFNTJyk8L3NjcmlwdD4K",
197
- "http://www.test.com",
198
- "/path/a",
199
- "GET",
200
- "routex",
194
+ 'data:text/html base64,PHNjcmlwdD5hbGVydCgnWFNTJyk8L3NjcmlwdD4K',
195
+ 'http://www.test.com',
196
+ '/path/a',
197
+ 'GET',
198
+ 'routex',
201
199
  400,
202
- "1.1.1.1"
200
+ '1.1.1.1'
203
201
  )
204
- expect(result).to eq("/")
205
-
202
+ expect(result).to eq('/')
206
203
  end
207
204
  end
208
205
  end
209
206
 
210
- context "is allowed" do
211
- it "should not send an event" do
207
+ context 'is allowed' do
208
+ it 'should not send an event' do
212
209
  @http_redirect_policy = HttpRedirectPolicy.from_json({
213
- "policy_id" => "x1a1",
214
- "data" => {
215
- "enabled" => true,
216
- "whitelist" => [],
217
- "block" => false,
218
- "dataSchemeAllowed" => true
219
- }
220
- })
210
+ 'policy_id' => 'x1a1',
211
+ 'data' => {
212
+ 'enabled' => true,
213
+ 'whitelist' => [],
214
+ 'block' => false,
215
+ 'data_scheme_allowed' => true
216
+ }
217
+ })
221
218
 
222
219
  expect(TCellAgent).to_not receive(:send_event)
223
220
 
224
221
  result = @http_redirect_policy.enforce(
225
- "data:text/html base64,PHNjcmlwdD5hbGVydCgnWFNTJyk8L3NjcmlwdD4K",
226
- "http://www.test.com",
227
- "/path/a",
228
- "GET",
229
- "routex",
222
+ 'data:text/html base64,PHNjcmlwdD5hbGVydCgnWFNTJyk8L3NjcmlwdD4K',
223
+ 'http://www.test.com',
224
+ '/path/a',
225
+ 'GET',
226
+ 'routex',
230
227
  400,
231
- "1.1.1.1"
228
+ '1.1.1.1'
232
229
  )
233
230
 
234
231
  expect(result).to eq(nil)
@@ -236,8 +233,6 @@ module TCellAgent
236
233
  end
237
234
  end
238
235
  end
239
-
240
236
  end
241
-
242
237
  end
243
238
  end
@@ -4,17 +4,17 @@ module TCellAgent
4
4
  module Policies
5
5
  describe HttpTxPolicy do
6
6
  http_tx_policy_json = {
7
- "policy_id"=>"01a1",
8
- "types"=>{
9
- "firehose"=>{"enabled"=>true}
7
+ 'policy_id' => '01a1',
8
+ 'types' => {
9
+ 'firehose' => { 'enabled' => true }
10
10
  }
11
11
  }
12
12
  http_tx_from_json = HttpTxPolicy.from_json(http_tx_policy_json)
13
- context "initialized with 3 items" do
14
- it "returns true" do
15
- expect(http_tx_from_json.policy_id).to eq("01a1")
16
- expect(http_tx_from_json.firehose["enabled"]).to eq(true)
17
- expect(http_tx_from_json.firehose["lite"]).to eq(false)
13
+ context 'initialized with 3 items' do
14
+ it 'returns true' do
15
+ expect(http_tx_from_json.policy_id).to eq('01a1')
16
+ expect(http_tx_from_json.firehose['enabled']).to eq(true)
17
+ expect(http_tx_from_json.firehose['lite']).to eq(false)
18
18
  end
19
19
  end
20
20
  end
@@ -2,30 +2,29 @@ require 'spec_helper'
2
2
 
3
3
  module TCellAgent
4
4
  module Policies
5
-
6
5
  describe LoginFraudPolicy do
7
6
  policy_json_empty = {
8
- "policy_id"=>"01a1",
9
- "data"=>{
10
- "options"=>{}
7
+ 'policy_id' => '01a1',
8
+ 'data' => {
9
+ 'options' => {}
11
10
  }
12
11
  }
13
12
 
14
13
  policy_json_one = {
15
- "policy_id"=>"01a1",
16
- "data"=>{
17
- "options"=>{
18
- "login_failed_enabled"=>true,
19
- "login_success_enabled"=>true,
20
- "session_hijacking_enabled"=>true
14
+ 'policy_id' => '01a1',
15
+ 'data' => {
16
+ 'options' => {
17
+ 'login_failed_enabled' => true,
18
+ 'login_success_enabled' => true,
19
+ 'session_hijacking_enabled' => true
21
20
  }
22
21
  }
23
22
  }
24
23
 
25
24
  empty_policy = LoginFraudPolicy.from_json(policy_json_empty)
26
- context "test empty agent" do
27
- it "enabled is false" do
28
- expect(empty_policy.policy_id).to eq("01a1")
25
+ context 'test empty agent' do
26
+ it 'enabled is false' do
27
+ expect(empty_policy.policy_id).to eq('01a1')
29
28
  expect(empty_policy.login_failed_enabled).to eq(false)
30
29
  expect(empty_policy.login_success_enabled).to eq(false)
31
30
  expect(empty_policy.session_hijacking_metrics).to eq(false)
@@ -33,15 +32,14 @@ module TCellAgent
33
32
  end
34
33
 
35
34
  policy_one = LoginFraudPolicy.from_json(policy_json_one)
36
- context "enabled agent" do
37
- it "enabled is true" do
38
- expect(empty_policy.policy_id).to eq("01a1")
35
+ context 'enabled agent' do
36
+ it 'enabled is true' do
37
+ expect(empty_policy.policy_id).to eq('01a1')
39
38
  expect(policy_one.login_failed_enabled).to eq(true)
40
39
  expect(policy_one.login_success_enabled).to eq(true)
41
40
  expect(policy_one.session_hijacking_metrics).to eq(true)
42
41
  end
43
42
  end
44
43
  end
45
-
46
44
  end
47
45
  end