From 055a4032084ff07dd202cb3e8fd28f56fb73bbc8 Mon Sep 17 00:00:00 2001 From: Alex Burgel Date: Fri, 9 Nov 2018 09:50:37 -0500 Subject: [PATCH 1/2] Allow session cookie handling to work with localhost --- app/models/test_track/session.rb | 14 ++++---------- spec/models/test_track/session_spec.rb | 14 ++++---------- 2 files changed, 8 insertions(+), 20 deletions(-) diff --git a/app/models/test_track/session.rb b/app/models/test_track/session.rb index afe94263..5d18128b 100644 --- a/app/models/test_track/session.rb +++ b/app/models/test_track/session.rb @@ -95,10 +95,8 @@ def cookie_domain end def _cookie_domain - if bare_ip_address? + if bare_ip_address? || fully_qualified_cookie_domain_enabled? request.host - elsif fully_qualified_cookie_domain_enabled? - fully_qualified_domain else wildcard_domain end @@ -108,16 +106,12 @@ def bare_ip_address? request.host.match(Resolv::AddressRegex) end - def fully_qualified_domain - public_suffix_host.name - end - def wildcard_domain - "." + public_suffix_host.domain + "." + (public_suffix_domain || request.host) end - def public_suffix_host - @public_suffix_host ||= PublicSuffix.parse(request.host, default_rule: nil) + def public_suffix_domain + @public_suffix_domain ||= PublicSuffix.domain(request.host, default_rule: nil) end def manage_cookies! diff --git a/spec/models/test_track/session_spec.rb b/spec/models/test_track/session_spec.rb index f9900157..7fb3bef9 100644 --- a/spec/models/test_track/session_spec.rb +++ b/spec/models/test_track/session_spec.rb @@ -235,16 +235,10 @@ def current_clown; end end end - it "checks for a valid domain" do - allow(request).to receive(:host).and_return("a.bad.actor;did-this") - expect { subject.manage {} }.to raise_error PublicSuffix::DomainInvalid - end - - it "checks for a valid domain when fully qualified cookie domains are enabled" do - with_env TEST_TRACK_FULLY_QUALIFIED_COOKIE_DOMAIN_ENABLED: 1 do - allow(request).to receive(:host).and_return("a.bad.actor;did-this") - expect { subject.manage {} }.to raise_error PublicSuffix::DomainInvalid - end + it "works with localhost" do + allow(request).to receive(:host).and_return("localhost") + subject.manage {} + expect(cookies['tt_visitor_id'][:domain]).to eq ".localhost" end it "doesn't munge an IPv4 hostname" do From ea7b356bacaabbad7f4aee0b85ccf2dff280da18 Mon Sep 17 00:00:00 2001 From: Alex Burgel Date: Fri, 9 Nov 2018 14:51:33 -0500 Subject: [PATCH 2/2] Bump version to 4.0.0.alpha14 --- lib/test_track_rails_client/version.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/test_track_rails_client/version.rb b/lib/test_track_rails_client/version.rb index 922cc7f6..5e893c64 100644 --- a/lib/test_track_rails_client/version.rb +++ b/lib/test_track_rails_client/version.rb @@ -1,3 +1,3 @@ module TestTrackRailsClient - VERSION = "4.0.0.alpha13" # rubocop:disable Style/MutableConstant + VERSION = "4.0.0.alpha14" # rubocop:disable Style/MutableConstant end