rubycas-client 2.2.1 → 2.3.0.rc1

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 (57) hide show
  1. data/Gemfile +13 -0
  2. data/Gemfile.lock +30 -0
  3. data/History.txt +21 -0
  4. data/README.rdoc +24 -20
  5. data/Rakefile +43 -54
  6. data/VERSION +1 -0
  7. data/examples/rails/README +16 -0
  8. data/examples/rails/app/controllers/advanced_example_controller.rb +31 -0
  9. data/examples/rails/app/controllers/application.rb +2 -0
  10. data/examples/rails/app/controllers/simple_example_controller.rb +16 -0
  11. data/examples/rails/app/views/advanced_example/index.html.erb +13 -0
  12. data/examples/rails/app/views/advanced_example/my_account.html.erb +11 -0
  13. data/examples/rails/app/views/simple_example/index.html.erb +6 -0
  14. data/examples/rails/config/boot.rb +109 -0
  15. data/examples/rails/config/environment.rb +39 -0
  16. data/examples/rails/config/environments/development.rb +17 -0
  17. data/examples/rails/config/environments/production.rb +22 -0
  18. data/examples/rails/config/environments/test.rb +22 -0
  19. data/examples/rails/config/initializers/inflections.rb +10 -0
  20. data/examples/rails/config/initializers/mime_types.rb +5 -0
  21. data/examples/rails/config/initializers/new_rails_defaults.rb +17 -0
  22. data/examples/rails/config/routes.rb +4 -0
  23. data/examples/rails/log/development.log +946 -0
  24. data/examples/rails/log/production.log +0 -0
  25. data/examples/rails/log/server.log +0 -0
  26. data/examples/rails/log/test.log +0 -0
  27. data/examples/rails/script/about +4 -0
  28. data/examples/rails/script/console +3 -0
  29. data/examples/rails/script/server +3 -0
  30. data/lib/casclient/client.rb +49 -36
  31. data/lib/casclient/frameworks/rails/cas_proxy_callback_controller.rb +5 -39
  32. data/lib/casclient/frameworks/rails/filter.rb +86 -113
  33. data/lib/casclient/responses.rb +29 -16
  34. data/lib/casclient/tickets/storage/active_record_ticket_store.rb +67 -0
  35. data/lib/casclient/tickets/storage.rb +167 -0
  36. data/lib/casclient/tickets.rb +3 -3
  37. data/lib/casclient.rb +3 -2
  38. data/lib/rubycas-client.rb +1 -5
  39. data/rails_generators/active_record_ticket_store/USAGE +9 -0
  40. data/rails_generators/active_record_ticket_store/active_record_ticket_store_generator.rb +29 -0
  41. data/rails_generators/active_record_ticket_store/templates/README +1 -0
  42. data/rails_generators/active_record_ticket_store/templates/migration.rb +24 -0
  43. data/rubycas-client.gemspec +103 -0
  44. data/test/teststrap.rb +10 -0
  45. data/test/units/casclient/frameworks/rails/filter_test.rb +184 -0
  46. metadata +148 -47
  47. data/Manifest.txt +0 -23
  48. data/examples/merb/README.textile +0 -12
  49. data/examples/merb/Rakefile +0 -35
  50. data/examples/merb/merb.thor +0 -2020
  51. data/examples/merb/merb_auth_cas.rb +0 -67
  52. data/examples/merb/spec/spec_helper.rb +0 -24
  53. data/init.rb +0 -6
  54. data/lib/casclient/frameworks/merb/filter.rb +0 -105
  55. data/lib/casclient/frameworks/merb/strategy.rb +0 -110
  56. data/lib/casclient/version.rb +0 -9
  57. data/setup.rb +0 -1585
@@ -0,0 +1,103 @@
1
+ # Generated by jeweler
2
+ # DO NOT EDIT THIS FILE DIRECTLY
3
+ # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
+ # -*- encoding: utf-8 -*-
5
+
6
+ Gem::Specification.new do |s|
7
+ s.name = %q{rubycas-client}
8
+ s.version = "2.3.0.rc1"
9
+
10
+ s.required_rubygems_version = Gem::Requirement.new("> 1.3.1") if s.respond_to? :required_rubygems_version=
11
+ s.authors = ["Matt Zukowski", "Matt Walker", "Matt Campbell"]
12
+ s.date = %q{2011-09-20}
13
+ s.extra_rdoc_files = [
14
+ "LICENSE.txt",
15
+ "README.rdoc"
16
+ ]
17
+ s.files = [
18
+ "CHANGELOG.txt",
19
+ "Gemfile",
20
+ "Gemfile.lock",
21
+ "History.txt",
22
+ "LICENSE.txt",
23
+ "README.rdoc",
24
+ "Rakefile",
25
+ "VERSION",
26
+ "examples/rails/README",
27
+ "examples/rails/app/controllers/advanced_example_controller.rb",
28
+ "examples/rails/app/controllers/application.rb",
29
+ "examples/rails/app/controllers/simple_example_controller.rb",
30
+ "examples/rails/app/views/advanced_example/index.html.erb",
31
+ "examples/rails/app/views/advanced_example/my_account.html.erb",
32
+ "examples/rails/app/views/simple_example/index.html.erb",
33
+ "examples/rails/config/boot.rb",
34
+ "examples/rails/config/environment.rb",
35
+ "examples/rails/config/environments/development.rb",
36
+ "examples/rails/config/environments/production.rb",
37
+ "examples/rails/config/environments/test.rb",
38
+ "examples/rails/config/initializers/inflections.rb",
39
+ "examples/rails/config/initializers/mime_types.rb",
40
+ "examples/rails/config/initializers/new_rails_defaults.rb",
41
+ "examples/rails/config/routes.rb",
42
+ "examples/rails/log/development.log",
43
+ "examples/rails/log/production.log",
44
+ "examples/rails/log/server.log",
45
+ "examples/rails/log/test.log",
46
+ "examples/rails/script/about",
47
+ "examples/rails/script/console",
48
+ "examples/rails/script/server",
49
+ "lib/casclient.rb",
50
+ "lib/casclient/client.rb",
51
+ "lib/casclient/frameworks/rails/cas_proxy_callback_controller.rb",
52
+ "lib/casclient/frameworks/rails/filter.rb",
53
+ "lib/casclient/responses.rb",
54
+ "lib/casclient/tickets.rb",
55
+ "lib/casclient/tickets/storage.rb",
56
+ "lib/casclient/tickets/storage/active_record_ticket_store.rb",
57
+ "lib/rubycas-client.rb",
58
+ "rails_generators/active_record_ticket_store/USAGE",
59
+ "rails_generators/active_record_ticket_store/active_record_ticket_store_generator.rb",
60
+ "rails_generators/active_record_ticket_store/templates/README",
61
+ "rails_generators/active_record_ticket_store/templates/migration.rb",
62
+ "rubycas-client.gemspec",
63
+ "test/teststrap.rb",
64
+ "test/units/casclient/frameworks/rails/filter_test.rb"
65
+ ]
66
+ s.homepage = %q{http://github.com/rubycas/rubycas-client}
67
+ s.licenses = ["MIT"]
68
+ s.rdoc_options = ["--main", "README.rdoc"]
69
+ s.require_paths = ["lib"]
70
+ s.rubygems_version = %q{1.6.2}
71
+ s.summary = %q{Client library for the Central Authentication Service (CAS) protocol.}
72
+
73
+ if s.respond_to? :specification_version then
74
+ s.specification_version = 3
75
+
76
+ if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
77
+ s.add_runtime_dependency(%q<activesupport>, [">= 0"])
78
+ s.add_development_dependency(%q<riot>, [">= 0"])
79
+ s.add_development_dependency(%q<rr>, [">= 0"])
80
+ s.add_development_dependency(%q<bundler>, ["~> 1.0.0"])
81
+ s.add_development_dependency(%q<jeweler>, ["~> 1.6.2"])
82
+ s.add_development_dependency(%q<rcov>, [">= 0"])
83
+ s.add_development_dependency(%q<actionpack>, [">= 0"])
84
+ else
85
+ s.add_dependency(%q<activesupport>, [">= 0"])
86
+ s.add_dependency(%q<riot>, [">= 0"])
87
+ s.add_dependency(%q<rr>, [">= 0"])
88
+ s.add_dependency(%q<bundler>, ["~> 1.0.0"])
89
+ s.add_dependency(%q<jeweler>, ["~> 1.6.2"])
90
+ s.add_dependency(%q<rcov>, [">= 0"])
91
+ s.add_dependency(%q<actionpack>, [">= 0"])
92
+ end
93
+ else
94
+ s.add_dependency(%q<activesupport>, [">= 0"])
95
+ s.add_dependency(%q<riot>, [">= 0"])
96
+ s.add_dependency(%q<rr>, [">= 0"])
97
+ s.add_dependency(%q<bundler>, ["~> 1.0.0"])
98
+ s.add_dependency(%q<jeweler>, ["~> 1.6.2"])
99
+ s.add_dependency(%q<rcov>, [">= 0"])
100
+ s.add_dependency(%q<actionpack>, [">= 0"])
101
+ end
102
+ end
103
+
data/test/teststrap.rb ADDED
@@ -0,0 +1,10 @@
1
+ require 'rubygems'
2
+ require 'bundler/setup'
3
+ require 'casclient'
4
+ require 'riot'
5
+ require 'riot/rr'
6
+ require 'action_pack'
7
+
8
+ RAILS_ROOT = "#{File.dirname(__FILE__)}/.." unless defined?(RAILS_ROOT)
9
+
10
+ Riot.reporter = Riot::VerboseStoryReporter
@@ -0,0 +1,184 @@
1
+ require 'teststrap'
2
+ require 'casclient/frameworks/rails/filter'
3
+ require 'action_controller'
4
+
5
+ context CASClient::Frameworks::Rails::Filter do
6
+
7
+ helper(:controller_with_session) do |session, request|
8
+ controller = Object.new
9
+ stub(controller).session {session}
10
+ stub(controller).request {request}
11
+ stub(controller).url_for {"bogusurl"}
12
+ stub(controller).params {{:ticket => "bogusticket", :renew => false}}
13
+ controller
14
+ end
15
+
16
+ setup do
17
+ CASClient::Frameworks::Rails::Filter.configure(
18
+ :cas_base_url => 'http://test.local/',
19
+ :logger => stub!
20
+ )
21
+ end
22
+
23
+ context "fake user without attributes" do
24
+ setup { CASClient::Frameworks::Rails::Filter.fake('tester@test.com') }
25
+ should 'set the session user on #filter' do
26
+ setup { Hash.new }
27
+ CASClient::Frameworks::Rails::Filter.filter(controller_with_session(topic,nil))
28
+ topic
29
+ end.equals :cas_user => 'tester@test.com', :casfilteruser => 'tester@test.com'
30
+ teardown { CASClient::Frameworks::Rails::Filter.fake(nil,nil) }
31
+ end
32
+
33
+ context "fake user with attributes" do
34
+ setup { CASClient::Frameworks::Rails::Filter.fake('tester@test.com', {:test => 'stuff', :this => 'that'}) }
35
+ should 'set the session user and attributes on #filter' do
36
+ setup { Hash.new }
37
+ CASClient::Frameworks::Rails::Filter.filter(controller_with_session(topic,nil))
38
+ topic
39
+ end.equals :cas_user => 'tester@test.com', :casfilteruser => 'tester@test.com', :cas_extra_attributes => {:test => 'stuff', :this => 'that' }
40
+ teardown { CASClient::Frameworks::Rails::Filter.fake(nil,nil) }
41
+ end
42
+
43
+ context "new service ticket successfully" do
44
+ should("return successfully from filter") do
45
+ setup { Hash.new }
46
+ mock_request = ActionController::Request.new({})
47
+ mock(mock_request).post? {true}
48
+
49
+ pgt = CASClient::ProxyGrantingTicket.new(
50
+ "PGT-1308586001r9573FAD5A8C62E134A4AA93273F226BD3F0C3A983DCCCD176",
51
+ "PGTIOU-1308586001r29DC1F852C95930FE6694C1EFC64232A3359798893BC0B")
52
+
53
+ raw_text = "<cas:serviceResponse xmlns:cas=\"http://www.yale.edu/tp/cas\">
54
+ <cas:authenticationSuccess>
55
+ <cas:user>rich.yarger@vibes.com</cas:user>
56
+ <cas:proxyGrantingTicket>PGTIOU-1308586001r29DC1F852C95930FE6694C1EFC64232A3359798893BC0B</cas:proxyGrantingTicket>
57
+ </cas:authenticationSuccess>
58
+ </cas:serviceResponse>"
59
+ response = CASClient::ValidationResponse.new(raw_text)
60
+
61
+ any_instance_of(CASClient::Client, :request_cas_response => response)
62
+ any_instance_of(CASClient::Client, :retrieve_proxy_granting_ticket => pgt)
63
+
64
+ controller = controller_with_session(topic,mock_request)
65
+ CASClient::Frameworks::Rails::Filter.filter(controller)
66
+ end.equals(true)
67
+ end
68
+
69
+ context "new service ticket with invalid service ticket" do
70
+ should("return failure from filter") do
71
+ setup { Hash.new }
72
+ mock_request = ActionController::Request.new({})
73
+ mock(mock_request).post? {true}
74
+
75
+ raw_text = "<cas:serviceResponse xmlns:cas=\"http://www.yale.edu/tp/cas\">
76
+ <cas:authenticationFailure>Some Error Text</cas:authenticationFailure>
77
+ </cas:serviceResponse>"
78
+ response = CASClient::ValidationResponse.new(raw_text)
79
+
80
+ any_instance_of(CASClient::Client, :request_cas_response => response)
81
+ stub(CASClient::Frameworks::Rails::Filter).unauthorized!{"bogusresponse"}
82
+
83
+ controller = controller_with_session(topic,mock_request)
84
+ CASClient::Frameworks::Rails::Filter.filter(controller)
85
+ end.equals(false)
86
+ end
87
+
88
+ context "no new service ticket but with last service ticket" do
89
+ should("return failure from filter") do
90
+ setup { Hash.new }
91
+ mock_request = ActionController::Request.new({})
92
+ mock(mock_request).post? {true}
93
+
94
+ stub(CASClient::Frameworks::Rails::Filter).unauthorized!{"bogusresponse"}
95
+
96
+ controller = controller_with_session(topic,mock_request)
97
+ stub(controller).params {{}}
98
+ CASClient::Frameworks::Rails::Filter.filter(controller)
99
+ end.equals(false)
100
+ end
101
+
102
+ context "no new service ticket sent through gateway, gatewaying off" do
103
+ should("return failure from filter") do
104
+ setup { Hash.new }
105
+ mock_request = ActionController::Request.new({})
106
+ mock(mock_request).post? {true}
107
+
108
+ stub(CASClient::Frameworks::Rails::Filter).unauthorized!{"bogusresponse"}
109
+
110
+ CASClient::Frameworks::Rails::Filter.config[:use_gatewaying] = false
111
+ controller = controller_with_session(topic,mock_request)
112
+ controller.session[:cas_sent_to_gateway] = true
113
+ stub(controller).params {{}}
114
+ CASClient::Frameworks::Rails::Filter.filter(controller)
115
+ end.equals(false)
116
+ end
117
+
118
+ context "no new service ticket sent through gateway, gatewaying on" do
119
+ should("return failure from filter") do
120
+ setup { Hash.new }
121
+ mock_request = ActionController::Request.new({})
122
+ mock(mock_request).post? {true}
123
+
124
+ CASClient::Frameworks::Rails::Filter.config[:use_gatewaying] = true
125
+ controller = controller_with_session(topic,mock_request)
126
+ controller.session[:cas_sent_to_gateway] = true
127
+ stub(controller).params {{}}
128
+ CASClient::Frameworks::Rails::Filter.filter(controller)
129
+ end.equals(true)
130
+ end
131
+
132
+ context "new service ticket with no PGT" do
133
+ should("return failure from filter") do
134
+ setup { Hash.new }
135
+ mock_request = ActionController::Request.new({})
136
+ mock(mock_request).post? {true}
137
+
138
+ raw_text = "<cas:serviceResponse xmlns:cas=\"http://www.yale.edu/tp/cas\">
139
+ <cas:authenticationSuccess>
140
+ <cas:user>rich.yarger@vibes.com</cas:user>
141
+ <cas:proxyGrantingTicket>PGTIOU-1308586001r29DC1F852C95930FE6694C1EFC64232A3359798893BC0B</cas:proxyGrantingTicket>
142
+ </cas:authenticationSuccess>
143
+ </cas:serviceResponse>"
144
+ response = CASClient::ValidationResponse.new(raw_text)
145
+
146
+ any_instance_of(CASClient::Client, :request_cas_response => response)
147
+ any_instance_of(CASClient::Client, :retrieve_proxy_granting_ticket => lambda{raise CASClient::CASException})
148
+
149
+ controller = controller_with_session(topic,mock_request)
150
+ CASClient::Frameworks::Rails::Filter.filter(controller)
151
+ end.raises(CASClient::CASException)
152
+ end
153
+
154
+ context "new service ticket, but cannot connect to CASServer" do
155
+ should("return failure from filter") do
156
+ setup { Hash.new }
157
+ mock_request = ActionController::Request.new({})
158
+ mock(mock_request).post? {true}
159
+
160
+ any_instance_of(CASClient::Client, :request_cas_response => lambda{raise "Some exception"})
161
+
162
+ controller = controller_with_session(topic,mock_request)
163
+ CASClient::Frameworks::Rails::Filter.filter(controller)
164
+ end.raises(RuntimeError)
165
+ end
166
+
167
+ context "reuse service ticket successfully" do
168
+ should("return successfully from filter") do
169
+ setup { Hash.new }
170
+ mock_request = ActionController::Request.new({})
171
+ mock(mock_request).post? {true}
172
+
173
+ mock_client = CASClient::Client.new()
174
+ mock(mock_client).request_cas_response().never
175
+ mock(mock_client).retrieve_proxy_granting_ticket().never
176
+ CASClient::Frameworks::Rails::Filter.send(:class_variable_set, :@@client, mock_client)
177
+
178
+ topic[:cas_last_valid_ticket] = 'bogusticket'
179
+ topic[:cas_last_valid_ticket_service] = 'bogusurl'
180
+ controller = controller_with_session(topic,mock_request)
181
+ CASClient::Frameworks::Rails::Filter.filter(controller)
182
+ end.equals(true)
183
+ end
184
+ end
metadata CHANGED
@@ -1,119 +1,220 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rubycas-client
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.2.1
4
+ hash: 15424103
5
+ prerelease: 6
6
+ segments:
7
+ - 2
8
+ - 3
9
+ - 0
10
+ - rc
11
+ - 1
12
+ version: 2.3.0.rc1
5
13
  platform: ruby
6
14
  authors:
7
15
  - Matt Zukowski
8
16
  - Matt Walker
17
+ - Matt Campbell
9
18
  autorequire:
10
19
  bindir: bin
11
20
  cert_chain: []
12
21
 
13
- date: 2010-06-24 00:00:00 -04:00
22
+ date: 2011-09-20 00:00:00 -05:00
14
23
  default_executable:
15
24
  dependencies:
16
25
  - !ruby/object:Gem::Dependency
17
- name: activesupport
18
26
  type: :runtime
19
- version_requirement:
20
- version_requirements: !ruby/object:Gem::Requirement
27
+ requirement: &id001 !ruby/object:Gem::Requirement
28
+ none: false
21
29
  requirements:
22
30
  - - ">="
23
31
  - !ruby/object:Gem::Version
32
+ hash: 3
33
+ segments:
34
+ - 0
24
35
  version: "0"
25
- version:
36
+ name: activesupport
37
+ version_requirements: *id001
38
+ prerelease: false
26
39
  - !ruby/object:Gem::Dependency
27
- name: rubyforge
28
40
  type: :development
29
- version_requirement:
30
- version_requirements: !ruby/object:Gem::Requirement
41
+ requirement: &id002 !ruby/object:Gem::Requirement
42
+ none: false
31
43
  requirements:
32
44
  - - ">="
33
45
  - !ruby/object:Gem::Version
34
- version: 2.0.3
35
- version:
46
+ hash: 3
47
+ segments:
48
+ - 0
49
+ version: "0"
50
+ name: riot
51
+ version_requirements: *id002
52
+ prerelease: false
53
+ - !ruby/object:Gem::Dependency
54
+ type: :development
55
+ requirement: &id003 !ruby/object:Gem::Requirement
56
+ none: false
57
+ requirements:
58
+ - - ">="
59
+ - !ruby/object:Gem::Version
60
+ hash: 3
61
+ segments:
62
+ - 0
63
+ version: "0"
64
+ name: rr
65
+ version_requirements: *id003
66
+ prerelease: false
67
+ - !ruby/object:Gem::Dependency
68
+ type: :development
69
+ requirement: &id004 !ruby/object:Gem::Requirement
70
+ none: false
71
+ requirements:
72
+ - - ~>
73
+ - !ruby/object:Gem::Version
74
+ hash: 23
75
+ segments:
76
+ - 1
77
+ - 0
78
+ - 0
79
+ version: 1.0.0
80
+ name: bundler
81
+ version_requirements: *id004
82
+ prerelease: false
36
83
  - !ruby/object:Gem::Dependency
37
- name: gemcutter
38
84
  type: :development
39
- version_requirement:
40
- version_requirements: !ruby/object:Gem::Requirement
85
+ requirement: &id005 !ruby/object:Gem::Requirement
86
+ none: false
87
+ requirements:
88
+ - - ~>
89
+ - !ruby/object:Gem::Version
90
+ hash: 11
91
+ segments:
92
+ - 1
93
+ - 6
94
+ - 2
95
+ version: 1.6.2
96
+ name: jeweler
97
+ version_requirements: *id005
98
+ prerelease: false
99
+ - !ruby/object:Gem::Dependency
100
+ type: :development
101
+ requirement: &id006 !ruby/object:Gem::Requirement
102
+ none: false
41
103
  requirements:
42
104
  - - ">="
43
105
  - !ruby/object:Gem::Version
44
- version: 0.2.1
45
- version:
106
+ hash: 3
107
+ segments:
108
+ - 0
109
+ version: "0"
110
+ name: rcov
111
+ version_requirements: *id006
112
+ prerelease: false
46
113
  - !ruby/object:Gem::Dependency
47
- name: hoe
48
114
  type: :development
49
- version_requirement:
50
- version_requirements: !ruby/object:Gem::Requirement
115
+ requirement: &id007 !ruby/object:Gem::Requirement
116
+ none: false
51
117
  requirements:
52
118
  - - ">="
53
119
  - !ruby/object:Gem::Version
54
- version: 2.5.0
55
- version:
56
- description: Client library for the Central Authentication Service (CAS) protocol.
57
- email: matt at roughest dot net
120
+ hash: 3
121
+ segments:
122
+ - 0
123
+ version: "0"
124
+ name: actionpack
125
+ version_requirements: *id007
126
+ prerelease: false
127
+ description:
128
+ email:
58
129
  executables: []
59
130
 
60
131
  extensions: []
61
132
 
62
133
  extra_rdoc_files:
63
- - CHANGELOG.txt
64
- - History.txt
65
134
  - LICENSE.txt
66
- - Manifest.txt
135
+ - README.rdoc
67
136
  files:
68
137
  - CHANGELOG.txt
138
+ - Gemfile
139
+ - Gemfile.lock
69
140
  - History.txt
70
141
  - LICENSE.txt
71
- - Manifest.txt
72
142
  - README.rdoc
73
143
  - Rakefile
74
- - examples/merb/README.textile
75
- - examples/merb/Rakefile
76
- - examples/merb/merb.thor
77
- - examples/merb/merb_auth_cas.rb
78
- - examples/merb/spec/spec_helper.rb
79
- - init.rb
144
+ - VERSION
145
+ - examples/rails/README
146
+ - examples/rails/app/controllers/advanced_example_controller.rb
147
+ - examples/rails/app/controllers/application.rb
148
+ - examples/rails/app/controllers/simple_example_controller.rb
149
+ - examples/rails/app/views/advanced_example/index.html.erb
150
+ - examples/rails/app/views/advanced_example/my_account.html.erb
151
+ - examples/rails/app/views/simple_example/index.html.erb
152
+ - examples/rails/config/boot.rb
153
+ - examples/rails/config/environment.rb
154
+ - examples/rails/config/environments/development.rb
155
+ - examples/rails/config/environments/production.rb
156
+ - examples/rails/config/environments/test.rb
157
+ - examples/rails/config/initializers/inflections.rb
158
+ - examples/rails/config/initializers/mime_types.rb
159
+ - examples/rails/config/initializers/new_rails_defaults.rb
160
+ - examples/rails/config/routes.rb
161
+ - examples/rails/log/development.log
162
+ - examples/rails/log/production.log
163
+ - examples/rails/log/server.log
164
+ - examples/rails/log/test.log
165
+ - examples/rails/script/about
166
+ - examples/rails/script/console
167
+ - examples/rails/script/server
80
168
  - lib/casclient.rb
81
169
  - lib/casclient/client.rb
82
- - lib/casclient/frameworks/merb/filter.rb
83
- - lib/casclient/frameworks/merb/strategy.rb
84
170
  - lib/casclient/frameworks/rails/cas_proxy_callback_controller.rb
85
171
  - lib/casclient/frameworks/rails/filter.rb
86
172
  - lib/casclient/responses.rb
87
173
  - lib/casclient/tickets.rb
88
- - lib/casclient/version.rb
174
+ - lib/casclient/tickets/storage.rb
175
+ - lib/casclient/tickets/storage/active_record_ticket_store.rb
89
176
  - lib/rubycas-client.rb
90
- - setup.rb
177
+ - rails_generators/active_record_ticket_store/USAGE
178
+ - rails_generators/active_record_ticket_store/active_record_ticket_store_generator.rb
179
+ - rails_generators/active_record_ticket_store/templates/README
180
+ - rails_generators/active_record_ticket_store/templates/migration.rb
181
+ - rubycas-client.gemspec
182
+ - test/teststrap.rb
183
+ - test/units/casclient/frameworks/rails/filter_test.rb
91
184
  has_rdoc: true
92
- homepage: http://rubycas-client.rubyforge.org
93
- licenses: []
94
-
185
+ homepage: http://github.com/rubycas/rubycas-client
186
+ licenses:
187
+ - MIT
95
188
  post_install_message:
96
189
  rdoc_options:
97
190
  - --main
98
- - README.txt
191
+ - README.rdoc
99
192
  require_paths:
100
193
  - lib
101
194
  required_ruby_version: !ruby/object:Gem::Requirement
195
+ none: false
102
196
  requirements:
103
197
  - - ">="
104
198
  - !ruby/object:Gem::Version
199
+ hash: 3
200
+ segments:
201
+ - 0
105
202
  version: "0"
106
- version:
107
203
  required_rubygems_version: !ruby/object:Gem::Requirement
204
+ none: false
108
205
  requirements:
109
- - - ">="
206
+ - - ">"
110
207
  - !ruby/object:Gem::Version
111
- version: "0"
112
- version:
208
+ hash: 25
209
+ segments:
210
+ - 1
211
+ - 3
212
+ - 1
213
+ version: 1.3.1
113
214
  requirements: []
114
215
 
115
- rubyforge_project: rubycas-client
116
- rubygems_version: 1.3.5
216
+ rubyforge_project:
217
+ rubygems_version: 1.6.2
117
218
  signing_key:
118
219
  specification_version: 3
119
220
  summary: Client library for the Central Authentication Service (CAS) protocol.