Skip to content

Commit

Permalink
Merge pull request #289 from rollbar/send-session-data
Browse files Browse the repository at this point in the history
Send session data instead of session store options.
  • Loading branch information
jondeandres committed Sep 15, 2015
2 parents 8f72f08 + 3a9971a commit 4ef7656
Show file tree
Hide file tree
Showing 4 changed files with 41 additions and 8 deletions.
10 changes: 9 additions & 1 deletion lib/rollbar/request_data_extractor.rb
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ def extract_request_data_from_rack(env)
post_params = rollbar_filtered_params(sensitive_params, rollbar_post_params(rack_req))
raw_body_params = rollbar_filtered_params(sensitive_params, mergeable_raw_body_params(rack_req))
cookies = rollbar_filtered_params(sensitive_params, rollbar_request_cookies(rack_req))
session = rollbar_filtered_params(sensitive_params, env['rack.session.options'])
session = rollbar_filtered_params(sensitive_params, rollbar_request_session(rack_req))
route_params = rollbar_filtered_params(sensitive_params, rollbar_route_params(env))

params = request_params.merge(get_params).merge(post_params).merge(raw_body_params)
Expand Down Expand Up @@ -150,6 +150,14 @@ def rollbar_route_params(env)
end
end

def rollbar_request_session(rack_req)
session = rack_req.session

session.to_hash
rescue
{}
end

def rollbar_request_cookies(rack_req)
rack_req.cookies
rescue
Expand Down
13 changes: 12 additions & 1 deletion spec/controllers/home_controller_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -368,7 +368,7 @@
end
end

context 'with multiple uploads' do
context 'with multiple uploads', :type => :request do
it "saves attachment data for all uploads" do
expect { post '/file_upload', :upload => [file1, file2] }.to raise_exception
sent_params = Rollbar.last_report[:request][:params]['upload']
Expand All @@ -379,6 +379,17 @@
end
end

context 'with session data', :type => :request do
before { get '/set_session_data' }
it 'reports the session data' do
expect { get '/use_session_data' }.to raise_exception

session_data = Rollbar.last_report[:request][:session]

expect(session_data['some_value']).to be_eql('this-is-a-cool-value')
end
end

after(:each) do
Rollbar.configure do |config|
config.logger = ::Rails.logger
Expand Down
10 changes: 10 additions & 0 deletions spec/dummyapp/app/controllers/home_controller.rb
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,16 @@ def file_upload
this = will_crash
end

def set_session_data
session[:some_value] = 'this-is-a-cool-value'

render :json => {}
end

def use_session_data
oh = this_is_crashing!
end

def current_user
@current_user ||= User.find_by_id(cookies[:session_id])
end
Expand Down
16 changes: 10 additions & 6 deletions spec/dummyapp/config/routes.rb
Original file line number Diff line number Diff line change
@@ -1,12 +1,16 @@
Dummy::Application.routes.draw do
root :to => "home#index"
root :to => 'home#index'
resources :users do
member { post :start_session }
end

get "/cause_exception" => "home#cause_exception"
put "/deprecated_report_exception" => "home#deprecated_report_exception"
match "/report_exception" => "home#report_exception", :via => [:get, :post, :put]
get "/current_user" => "home#current_user"
post "/file_upload" => "home#file_upload"
get '/cause_exception' => 'home#cause_exception'
put '/deprecated_report_exception' => 'home#deprecated_report_exception'
match '/report_exception' => 'home#report_exception',
:via => [:get, :post, :put]
get '/current_user' => 'home#current_user'
post '/file_upload' => 'home#file_upload'

get '/set_session_data' => 'home#set_session_data'
get '/use_session_data' => 'home#use_session_data'
end

0 comments on commit 4ef7656

Please sign in to comment.