tcell_agent 0.2.8 → 0.2.9

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.
@@ -0,0 +1,89 @@
1
+ require 'spec_helper'
2
+ require 'rack/test'
3
+ require 'rack'
4
+
5
+ module TCellAgent
6
+ module Instrumentation
7
+ module Rails
8
+ module Middleware
9
+
10
+
11
+ class MockAppsensorRackApp
12
+
13
+ attr_reader :request_body
14
+
15
+ def initialize(route_id=nil, session_id=nil)
16
+ @route_id = route_id
17
+ @session_id = session_id
18
+ @request_headers = {}
19
+ end
20
+
21
+ def call(env)
22
+ @env = env
23
+ rack_request = Rack::Request.new(env)
24
+ response_headers = {'Content-Type' => 'text/html'}
25
+ env["tcell.request_data"].transaction_id = "a-b-c-d-e-f"
26
+ env["tcell.request_data"].session_id = @session_id
27
+ env["tcell.request_data"].route_id = @route_id
28
+ if (rack_request.params['rv'])
29
+ response_headers["Location"] = rack_request.params['rv']
30
+ end
31
+ [200, response_headers, ['OK']]
32
+ end
33
+
34
+ def [](key)
35
+ @env[key]
36
+ end
37
+
38
+ end
39
+
40
+ describe HeadersMiddleware do
41
+
42
+ let(:app) { MockAppsensorRackApp.new }
43
+ let(:app2) { MockAppsensorRackApp.new(route_id="myrouteid", session_id="plainsessionid") }
44
+
45
+ subject { withTCellMiddleware( app ) }
46
+
47
+ context "Redirect Middleware" do
48
+ before(:each) do
49
+ TCellAgent.configuration = TCellAgent::Configuration.new
50
+ TCellAgent.configuration.read_config_from_file(get_test_resource_path("normal_config.json"))
51
+ end
52
+ let(:request) { Rack::MockRequest.new(subject) }
53
+ let(:request2) { Rack::MockRequest.new( withTCellMiddleware( app2 )) }
54
+ let(:agent) { ::TCellAgent::Agent.new }
55
+ context "Event" do
56
+ before(:each) do
57
+ TCellAgent.thread_agent.processPolicyJson({"http-redirect"=>{
58
+ "policy_id"=>"153ed270-7481-11e5-9194-95dad9b9dec3",
59
+ "data"=>{
60
+ "enabled"=>true,
61
+ "block"=>false,
62
+ "whitelist"=>[]
63
+ }
64
+ }}, cache=false)
65
+ TCellAgent.empty_event_queue
66
+ end
67
+ it "sends redirect" do
68
+ response = request.get("/some/path2?abcdef=adsfsadf&rv=https://www.google.com", 'CONTENT_TYPE' => 'text/html', 'REMOTE_ADDR' => '1.3.3.4,3.4.5.6')
69
+ expect(response['Location']).to eq("https://www.google.com")
70
+ expected_as = {"event_type"=>"redirect", "method"=>"GET", "from_domain"=>"example.org", "status_code"=>200, "remote_addr"=>"1.3.3.4", "from"=>"/some/path2?abcdef=&rv=", "to"=>"www.google.com"}
71
+ expect(TCellAgent.event_queue).to include(expected_as)
72
+ end
73
+ it "sends redirect event with extra info" do
74
+ response = request2.get("/some/path2?abcdef=adsfsadf&rv=https://www.google.com", 'CONTENT_TYPE' => 'text/html', 'REMOTE_ADDR' => '1.3.3.4,3.4.5.6')
75
+ expect(response['Location']).to eq("https://www.google.com")
76
+ expected_as = {"event_type"=>"redirect", "method"=>"GET", "from_domain"=>"example.org", "status_code"=>200, "remote_addr"=>"1.3.3.4", "rid"=>"myrouteid", "from"=>"/some/path2?abcdef=&rv=", "to"=>"www.google.com", "sid"=>"cb3fab8131c0e32cb80916d0d6954729eb66ea5782016625f278e7317e35259e"}
77
+ expect(TCellAgent.event_queue).to include(expected_as)
78
+ end
79
+
80
+ end #/conext
81
+
82
+ end #/context
83
+ end #/describe
84
+
85
+
86
+ end
87
+ end
88
+ end
89
+ end
@@ -14,3 +14,12 @@ def get_test_resource_path(name)
14
14
  end
15
15
 
16
16
  require 'tcell_agent/agent'
17
+
18
+ if TCellAgent.configuration.raise_exceptions
19
+ puts "[tCell.io] ******WARNING*************WARNING**************WARNING****************"
20
+ puts "[tCell.io] Travis CI has TCELL_RAISE_EXCEPTIONS set to false."
21
+ puts "[tCell.io] Your environment TCELL_RAISE_EXCEPTIONS has it set to true"
22
+ puts "[tCell.io] because of this discrepancy you may observe different spec failures"
23
+ puts "[tCell.io] in your dev env than those observed on Travis CI"
24
+ puts "[tCell.io] **********************************************************************"
25
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tcell_agent
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.8
4
+ version: 0.2.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Garrett
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-02-18 00:00:00.000000000 Z
11
+ date: 2016-03-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rest-client
@@ -117,20 +117,24 @@ executables:
117
117
  extensions: []
118
118
  extra_rdoc_files: []
119
119
  files:
120
+ - LICENSE
121
+ - README.md
120
122
  - Rakefile
123
+ - bin/tcell_agent
124
+ - lib/tcell_agent.rb
125
+ - lib/tcell_agent/agent.rb
121
126
  - lib/tcell_agent/agent/event_processor.rb
122
127
  - lib/tcell_agent/agent/fork_pipe_manager.rb
123
128
  - lib/tcell_agent/agent/policy_manager.rb
124
129
  - lib/tcell_agent/agent/policy_types.rb
125
130
  - lib/tcell_agent/agent/route_manager.rb
126
131
  - lib/tcell_agent/agent/static_agent.rb
127
- - lib/tcell_agent/agent.rb
128
132
  - lib/tcell_agent/api.rb
133
+ - lib/tcell_agent/appsensor.rb
129
134
  - lib/tcell_agent/appsensor/cmdi.rb
130
135
  - lib/tcell_agent/appsensor/path_traversal.rb
131
136
  - lib/tcell_agent/appsensor/sqli.rb
132
137
  - lib/tcell_agent/appsensor/xss.rb
133
- - lib/tcell_agent/appsensor.rb
134
138
  - lib/tcell_agent/authlogic.rb
135
139
  - lib/tcell_agent/configuration.rb
136
140
  - lib/tcell_agent/devise.rb
@@ -145,6 +149,7 @@ files:
145
149
  - lib/tcell_agent/policies/http_tx_policy.rb
146
150
  - lib/tcell_agent/policies/login_fraud_policy.rb
147
151
  - lib/tcell_agent/policies/secure_headers_policy.rb
152
+ - lib/tcell_agent/rails.rb
148
153
  - lib/tcell_agent/rails/auth/authlogic.rb
149
154
  - lib/tcell_agent/rails/auth/devise.rb
150
155
  - lib/tcell_agent/rails/dlp.rb
@@ -155,7 +160,6 @@ files:
155
160
  - lib/tcell_agent/rails/on_start.rb
156
161
  - lib/tcell_agent/rails/routes.rb
157
162
  - lib/tcell_agent/rails/settings_reporter.rb
158
- - lib/tcell_agent/rails.rb
159
163
  - lib/tcell_agent/routes/table.rb
160
164
  - lib/tcell_agent/sensor_events/app_config.rb
161
165
  - lib/tcell_agent/sensor_events/app_sensor.rb
@@ -180,7 +184,9 @@ files:
180
184
  - lib/tcell_agent/userinfo.rb
181
185
  - lib/tcell_agent/utils/queue_with_timeout.rb
182
186
  - lib/tcell_agent/version.rb
183
- - lib/tcell_agent.rb
187
+ - spec/apps/rails-3.2/Gemfile
188
+ - spec/apps/rails-3.2/Gemfile.lock
189
+ - spec/apps/rails-3.2/Rakefile
184
190
  - spec/apps/rails-3.2/app/assets/images/rails.png
185
191
  - spec/apps/rails-3.2/app/assets/javascripts/application.js
186
192
  - spec/apps/rails-3.2/app/assets/stylesheets/application.css
@@ -189,15 +195,15 @@ files:
189
195
  - spec/apps/rails-3.2/app/helpers/application_helper.rb
190
196
  - spec/apps/rails-3.2/app/views/layouts/application.html.erb
191
197
  - spec/apps/rails-3.2/app/views/t_cell_app/index.html.erb
198
+ - spec/apps/rails-3.2/config.ru
192
199
  - spec/apps/rails-3.2/config/application.rb
193
200
  - spec/apps/rails-3.2/config/boot.rb
194
201
  - spec/apps/rails-3.2/config/environment.rb
195
202
  - spec/apps/rails-3.2/config/environments/test.rb
196
203
  - spec/apps/rails-3.2/config/routes.rb
197
- - spec/apps/rails-3.2/config.ru
198
- - spec/apps/rails-3.2/Gemfile
199
- - spec/apps/rails-3.2/Gemfile.lock
200
- - spec/apps/rails-3.2/Rakefile
204
+ - spec/apps/rails-4.1/Gemfile
205
+ - spec/apps/rails-4.1/Gemfile.lock
206
+ - spec/apps/rails-4.1/Rakefile
201
207
  - spec/apps/rails-4.1/app/assets/javascripts/application.js
202
208
  - spec/apps/rails-4.1/app/assets/stylesheets/application.css
203
209
  - spec/apps/rails-4.1/app/controllers/application_controller.rb
@@ -205,6 +211,7 @@ files:
205
211
  - spec/apps/rails-4.1/app/helpers/application_helper.rb
206
212
  - spec/apps/rails-4.1/app/views/layouts/application.html.erb
207
213
  - spec/apps/rails-4.1/app/views/t_cell_app/index.html.erb
214
+ - spec/apps/rails-4.1/config.ru
208
215
  - spec/apps/rails-4.1/config/application.rb
209
216
  - spec/apps/rails-4.1/config/boot.rb
210
217
  - spec/apps/rails-4.1/config/environment.rb
@@ -220,13 +227,10 @@ files:
220
227
  - spec/apps/rails-4.1/config/locales/en.yml
221
228
  - spec/apps/rails-4.1/config/routes.rb
222
229
  - spec/apps/rails-4.1/config/secrets.yml
223
- - spec/apps/rails-4.1/config.ru
224
- - spec/apps/rails-4.1/Gemfile
225
- - spec/apps/rails-4.1/Gemfile.lock
226
- - spec/apps/rails-4.1/Rakefile
227
230
  - spec/controllers/application_controller.rb
228
231
  - spec/integration/puma.rb
229
232
  - spec/lib/tcell_agent/agent/fork_pipe_manager_spec.rb
233
+ - spec/lib/tcell_agent/agent/policy_manager_spec.rb
230
234
  - spec/lib/tcell_agent/agent/static_agent_spec.rb
231
235
  - spec/lib/tcell_agent/api/api_spec.rb
232
236
  - spec/lib/tcell_agent/appsensor_spec.rb
@@ -243,6 +247,7 @@ files:
243
247
  - spec/lib/tcell_agent/rails/logger_spec.rb
244
248
  - spec/lib/tcell_agent/rails/middleware/appsensor_middleware_spec.rb
245
249
  - spec/lib/tcell_agent/rails/middleware/global_middleware_spec.rb
250
+ - spec/lib/tcell_agent/rails/middleware/redirect_middleware_spec.rb
246
251
  - spec/lib/tcell_agent/rails_spec.rb
247
252
  - spec/lib/tcell_agent/sensor_events/dlp_spec.rb
248
253
  - spec/lib/tcell_agent/sensor_events/sessions_metric_spec.rb
@@ -254,10 +259,7 @@ files:
254
259
  - spec/support/middleware_helper.rb
255
260
  - spec/support/resources/normal_config.json
256
261
  - spec/support/static_agent_overrides.rb
257
- - README.md
258
- - LICENSE
259
262
  - tcell_agent.gemspec
260
- - bin/tcell_agent
261
263
  homepage: https://www.tcell.io
262
264
  licenses:
263
265
  - Copyright (c) 2015 tCell.io (see LICENSE file)
@@ -280,11 +282,14 @@ required_rubygems_version: !ruby/object:Gem::Requirement
280
282
  version: '0'
281
283
  requirements: []
282
284
  rubyforge_project:
283
- rubygems_version: 2.0.14
285
+ rubygems_version: 2.4.8
284
286
  signing_key:
285
287
  specification_version: 4
286
288
  summary: tCell.io Agent for Rails & Sinatra
287
289
  test_files:
290
+ - spec/apps/rails-3.2/Gemfile
291
+ - spec/apps/rails-3.2/Gemfile.lock
292
+ - spec/apps/rails-3.2/Rakefile
288
293
  - spec/apps/rails-3.2/app/assets/images/rails.png
289
294
  - spec/apps/rails-3.2/app/assets/javascripts/application.js
290
295
  - spec/apps/rails-3.2/app/assets/stylesheets/application.css
@@ -293,15 +298,15 @@ test_files:
293
298
  - spec/apps/rails-3.2/app/helpers/application_helper.rb
294
299
  - spec/apps/rails-3.2/app/views/layouts/application.html.erb
295
300
  - spec/apps/rails-3.2/app/views/t_cell_app/index.html.erb
301
+ - spec/apps/rails-3.2/config.ru
296
302
  - spec/apps/rails-3.2/config/application.rb
297
303
  - spec/apps/rails-3.2/config/boot.rb
298
304
  - spec/apps/rails-3.2/config/environment.rb
299
305
  - spec/apps/rails-3.2/config/environments/test.rb
300
306
  - spec/apps/rails-3.2/config/routes.rb
301
- - spec/apps/rails-3.2/config.ru
302
- - spec/apps/rails-3.2/Gemfile
303
- - spec/apps/rails-3.2/Gemfile.lock
304
- - spec/apps/rails-3.2/Rakefile
307
+ - spec/apps/rails-4.1/Gemfile
308
+ - spec/apps/rails-4.1/Gemfile.lock
309
+ - spec/apps/rails-4.1/Rakefile
305
310
  - spec/apps/rails-4.1/app/assets/javascripts/application.js
306
311
  - spec/apps/rails-4.1/app/assets/stylesheets/application.css
307
312
  - spec/apps/rails-4.1/app/controllers/application_controller.rb
@@ -309,6 +314,7 @@ test_files:
309
314
  - spec/apps/rails-4.1/app/helpers/application_helper.rb
310
315
  - spec/apps/rails-4.1/app/views/layouts/application.html.erb
311
316
  - spec/apps/rails-4.1/app/views/t_cell_app/index.html.erb
317
+ - spec/apps/rails-4.1/config.ru
312
318
  - spec/apps/rails-4.1/config/application.rb
313
319
  - spec/apps/rails-4.1/config/boot.rb
314
320
  - spec/apps/rails-4.1/config/environment.rb
@@ -324,13 +330,10 @@ test_files:
324
330
  - spec/apps/rails-4.1/config/locales/en.yml
325
331
  - spec/apps/rails-4.1/config/routes.rb
326
332
  - spec/apps/rails-4.1/config/secrets.yml
327
- - spec/apps/rails-4.1/config.ru
328
- - spec/apps/rails-4.1/Gemfile
329
- - spec/apps/rails-4.1/Gemfile.lock
330
- - spec/apps/rails-4.1/Rakefile
331
333
  - spec/controllers/application_controller.rb
332
334
  - spec/integration/puma.rb
333
335
  - spec/lib/tcell_agent/agent/fork_pipe_manager_spec.rb
336
+ - spec/lib/tcell_agent/agent/policy_manager_spec.rb
334
337
  - spec/lib/tcell_agent/agent/static_agent_spec.rb
335
338
  - spec/lib/tcell_agent/api/api_spec.rb
336
339
  - spec/lib/tcell_agent/appsensor_spec.rb
@@ -347,6 +350,7 @@ test_files:
347
350
  - spec/lib/tcell_agent/rails/logger_spec.rb
348
351
  - spec/lib/tcell_agent/rails/middleware/appsensor_middleware_spec.rb
349
352
  - spec/lib/tcell_agent/rails/middleware/global_middleware_spec.rb
353
+ - spec/lib/tcell_agent/rails/middleware/redirect_middleware_spec.rb
350
354
  - spec/lib/tcell_agent/rails_spec.rb
351
355
  - spec/lib/tcell_agent/sensor_events/dlp_spec.rb
352
356
  - spec/lib/tcell_agent/sensor_events/sessions_metric_spec.rb