From 818afea20dbd117fa6279fb91fbe1afb90c8b436 Mon Sep 17 00:00:00 2001 From: Paul Belt Date: Tue, 20 Jan 2015 11:49:34 -0500 Subject: [PATCH 1/7] Update to support ActiveRecord 4 query syntax based on work done by Adam Kenger from Cantina Inc --- Gemfile | 3 +-- rubycas-server.gemspec | 8 ++++---- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/Gemfile b/Gemfile index 9f336726..902e19eb 100644 --- a/Gemfile +++ b/Gemfile @@ -1,12 +1,11 @@ source "http://rubygems.org" gemspec - # Gems for authenticators group :ldap do gem "net-ldap", "~> 0.1.1" end group :active_resource do - gem "activeresource", ">= 2.3.12", "< 4.0" + gem 'activeresource', '~> 4.0.0' end diff --git a/rubycas-server.gemspec b/rubycas-server.gemspec index 2076d106..f59666cf 100644 --- a/rubycas-server.gemspec +++ b/rubycas-server.gemspec @@ -26,10 +26,10 @@ $gemspec = Gem::Specification.new do |s| s.has_rdoc = true s.post_install_message = "For more information on RubyCAS-Server, see http://rubycas.github.com" - s.add_dependency("activerecord", ">= 2.3.12", "< 4.0") - s.add_dependency("activesupport", ">= 2.3.12", "< 4.0") - s.add_dependency("sinatra", "~> 1.0") - s.add_dependency("sinatra-r18n", '~> 1.1.0') + s.add_dependency('activerecord', '~> 4.2') + s.add_dependency('activesupport', '~> 4.2') + s.add_dependency('sinatra', '~> 1.4.5') + s.add_dependency('sinatra-r18n', '~> 2.0.3') s.add_dependency("crypt-isaac", "~> 0.9.1") s.add_development_dependency("rack-test") From 0be2939661b0f38ea7af5afff987318034267b69 Mon Sep 17 00:00:00 2001 From: Paul Belt Date: Tue, 20 Jan 2015 11:51:08 -0500 Subject: [PATCH 2/7] instruct ruby version managers to use ruby-2.0.0 i.e. rvm / rbenv --- .ruby-version | 1 + 1 file changed, 1 insertion(+) create mode 100644 .ruby-version diff --git a/.ruby-version b/.ruby-version new file mode 100644 index 00000000..76521af3 --- /dev/null +++ b/.ruby-version @@ -0,0 +1 @@ +ruby-2.2.0 From 8a6f04170680cf09027c946df883b0e24673e190 Mon Sep 17 00:00:00 2001 From: Paul Belt Date: Tue, 20 Jan 2015 11:57:39 -0500 Subject: [PATCH 3/7] update SQL query for logout based on work from Dan Barron --- lib/casserver/server.rb | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/lib/casserver/server.rb b/lib/casserver/server.rb index 77f7633a..14a7ac20 100644 --- a/lib/casserver/server.rb +++ b/lib/casserver/server.rb @@ -533,9 +533,10 @@ def self.init_database! st.destroy end - pgts = CASServer::Model::ProxyGrantingTicket.find(:all, - :conditions => [CASServer::Model::ServiceTicket.quoted_table_name+".username = ?", tgt.username], - :include => :service_ticket) + pgts = CASServer::Model::ProxyGrantingTicket.where( + CASServer::Model::ServiceTicket.quoted_table_name + '.username = ?', tgt.username + ).joins(:service_ticket) + pgts.each do |pgt| $LOG.debug("Deleting Proxy-Granting Ticket '#{pgt}' for user '#{pgt.service_ticket.username}'") pgt.destroy From cbe94987a8e04eacdd726a75d7e81999a47ebf3f Mon Sep 17 00:00:00 2001 From: Paul Belt Date: Tue, 20 Jan 2015 15:15:59 -0500 Subject: [PATCH 4/7] re-instate deprecated rspec-its function ... to avoid deprecation warnings from rspec-2 to rspec-3 conversion --- rubycas-server.gemspec | 1 + spec/spec_helper.rb | 1 + 2 files changed, 2 insertions(+) diff --git a/rubycas-server.gemspec b/rubycas-server.gemspec index f59666cf..f44dfea6 100644 --- a/rubycas-server.gemspec +++ b/rubycas-server.gemspec @@ -36,6 +36,7 @@ $gemspec = Gem::Specification.new do |s| s.add_development_dependency("capybara", '1.1.2') s.add_development_dependency("rspec") s.add_development_dependency("rspec-core") + s.add_development_dependency('rspec-its') s.add_development_dependency("rake", "0.8.7") s.add_development_dependency("sqlite3", "~> 1.3.1") s.add_development_dependency("appraisal", "~> 0.4.1") diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index 2aebf1a9..8a581525 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -1,6 +1,7 @@ require 'rubygems' require 'rack/test' require 'rspec' +require 'rspec/its' #require 'spec/autorun' #require 'spec/interop/test' require 'logger' From bec27821d8edcd66f9aec2cc709f9faf6e8c3f44 Mon Sep 17 00:00:00 2001 From: Paul Belt Date: Tue, 20 Jan 2015 15:21:00 -0500 Subject: [PATCH 5/7] stub! is deprecated. Use stub instead --- .../authenticators/active_resource_spec.rb | 4 ++-- spec/casserver/authenticators/ldap_spec.rb | 18 +++++++++--------- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/spec/casserver/authenticators/active_resource_spec.rb b/spec/casserver/authenticators/active_resource_spec.rb index de60bb5b..0d17d960 100644 --- a/spec/casserver/authenticators/active_resource_spec.rb +++ b/spec/casserver/authenticators/active_resource_spec.rb @@ -64,7 +64,7 @@ def mock_authenticate identity = nil identity = CASServer::Authenticators::Helpers::Identity.new if identity.nil? - CASServer::Authenticators::Helpers::Identity.stub!(:authenticate).and_return(identity) + CASServer::Authenticators::Helpers::Identity.stub(:authenticate).and_return(identity) end def sample_identity attrs = {} @@ -87,7 +87,7 @@ def sample_identity attrs = {} end it "should return false when http raises" do - CASServer::Authenticators::Helpers::Identity.stub!(:authenticate).and_raise(ActiveResource::ForbiddenAccess.new({})) + CASServer::Authenticators::Helpers::Identity.stub(:authenticate).and_raise(ActiveResource::ForbiddenAccess.new({})) auth.validate(credentials).should be_false end diff --git a/spec/casserver/authenticators/ldap_spec.rb b/spec/casserver/authenticators/ldap_spec.rb index 3a87720c..88cfe594 100644 --- a/spec/casserver/authenticators/ldap_spec.rb +++ b/spec/casserver/authenticators/ldap_spec.rb @@ -12,17 +12,17 @@ CASServer::Authenticators::LDAP @ldap_entry = mock(Net::LDAP::Entry.new) - @ldap_entry.stub!(:[]).and_return("Test") + @ldap_entry.stub(:[]).and_return("Test") @ldap = mock(Net::LDAP) - @ldap.stub!(:host=) - @ldap.stub!(:port=) - @ldap.stub!(:encryption) - @ldap.stub!(:bind_as).and_return(true) - @ldap.stub!(:authenticate).and_return(true) - @ldap.stub!(:search).and_return([@ldap_entry]) - - Net::LDAP.stub!(:new).and_return(@ldap) + @ldap.stub(:host=) + @ldap.stub(:port=) + @ldap.stub(:encryption) + @ldap.stub(:bind_as).and_return(true) + @ldap.stub(:authenticate).and_return(true) + @ldap.stub(:search).and_return([@ldap_entry]) + + Net::LDAP.stub(:new).and_return(@ldap) end describe '#validate' do From be2f3230c0b9c984118e8aba541464d3849c3700 Mon Sep 17 00:00:00 2001 From: Paul Belt Date: Tue, 20 Jan 2015 15:22:53 -0500 Subject: [PATCH 6/7] remove more deprecation warnings `be_false` is deprecated. Use `be_falsey` (for Ruby's conditional semantics) or `be false` `be_true` is deprecated. Use `be_truthy` (for Ruby's conditional semantics) or `be true` used be(true) and be(false) --- spec/casserver/authenticators/active_resource_spec.rb | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/spec/casserver/authenticators/active_resource_spec.rb b/spec/casserver/authenticators/active_resource_spec.rb index 0d17d960..13b2cdb7 100644 --- a/spec/casserver/authenticators/active_resource_spec.rb +++ b/spec/casserver/authenticators/active_resource_spec.rb @@ -82,33 +82,33 @@ def sample_identity attrs = {} auth.configure({}.with_indifferent_access) identity = sample_identity({:email => 'foo@example.org'}) mock_authenticate identity - auth.validate(credentials).should be_true + auth.validate(credentials).should be(true) auth.extra_attributes.should == identity.attributes end it "should return false when http raises" do CASServer::Authenticators::Helpers::Identity.stub(:authenticate).and_raise(ActiveResource::ForbiddenAccess.new({})) - auth.validate(credentials).should be_false + auth.validate(credentials).should be(false) end it "should apply extra_attribute filter" do auth.configure({ :extra_attributes => 'age'}.with_indifferent_access) mock_authenticate sample_identity({ :email => 'foo@example.org', :age => 28 }) - auth.validate(credentials).should be_true + auth.validate(credentials).should be(true) auth.extra_attributes.should == { "age" => "28" } end it "should only extract not filtered attributes" do auth.configure({ :filter_attributes => 'age'}.with_indifferent_access) mock_authenticate sample_identity({ :email => 'foo@example.org', :age => 28 }) - auth.validate(credentials).should be_true + auth.validate(credentials).should be(true) auth.extra_attributes.should == { "email" => 'foo@example.org' } end it "should filter password if filter attributes is not given" do auth.configure({}.with_indifferent_access) mock_authenticate sample_identity({ :email => 'foo@example.org', :password => 'secret' }) - auth.validate(credentials).should be_true + auth.validate(credentials).should be(true) auth.extra_attributes.should == { "email" => 'foo@example.org' } end end From cbeb3827a445a026b3a99cf5266fd743f8b6bffa Mon Sep 17 00:00:00 2001 From: Paul Belt Date: Tue, 20 Jan 2015 15:24:23 -0500 Subject: [PATCH 7/7] mock is deprecated. Use double instead --- spec/casserver/authenticators/ldap_spec.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/spec/casserver/authenticators/ldap_spec.rb b/spec/casserver/authenticators/ldap_spec.rb index 88cfe594..af63ea49 100644 --- a/spec/casserver/authenticators/ldap_spec.rb +++ b/spec/casserver/authenticators/ldap_spec.rb @@ -11,10 +11,10 @@ # Trigger autoload to load net ldap CASServer::Authenticators::LDAP - @ldap_entry = mock(Net::LDAP::Entry.new) + @ldap_entry = double(Net::LDAP::Entry.new) @ldap_entry.stub(:[]).and_return("Test") - @ldap = mock(Net::LDAP) + @ldap = double(Net::LDAP) @ldap.stub(:host=) @ldap.stub(:port=) @ldap.stub(:encryption)