oa-enterprise 0.2.3 → 0.2.4

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.
data/.gemtest ADDED
File without changes
data/.rspec ADDED
@@ -0,0 +1,3 @@
1
+ --color
2
+ --format=nested
3
+ --backtrace
data/.yardopts ADDED
@@ -0,0 +1,4 @@
1
+ --markup markdown
2
+ --markup-provider maruku
3
+ -
4
+ LICENSE
data/Gemfile ADDED
@@ -0,0 +1,3 @@
1
+ source 'http://rubygems.org'
2
+
3
+ gemspec
data/Rakefile ADDED
@@ -0,0 +1,6 @@
1
+ require 'bundler'
2
+ Bundler::GemHelper.install_tasks
3
+ require 'rspec/core/rake_task'
4
+ RSpec::Core::RakeTask.new(:spec)
5
+ task :default => :spec
6
+ task :test => :spec
@@ -0,0 +1,29 @@
1
+ # -*- encoding: utf-8 -*-
2
+ require File.expand_path('../../omniauth/lib/omniauth/version', __FILE__)
3
+
4
+ Gem::Specification.new do |gem|
5
+ gem.add_runtime_dependency 'addressable', '2.2.4'
6
+ gem.add_runtime_dependency 'oa-core', Omniauth::VERSION.dup
7
+ gem.add_runtime_dependency 'nokogiri', '~> 1.4.2'
8
+ gem.add_runtime_dependency 'net-ldap', '~> 0.1.1'
9
+ gem.add_runtime_dependency 'rubyntlm', '~> 0.1.1'
10
+ gem.add_runtime_dependency 'pyu-ruby-sasl', '~> 0.0.3.1'
11
+ gem.add_development_dependency 'simplecov', '~> 0.4'
12
+ gem.add_development_dependency 'rack-test', '~> 0.5'
13
+ gem.add_development_dependency 'rake', '~> 0.8'
14
+ gem.add_development_dependency 'rspec', '~> 2.5'
15
+ gem.add_development_dependency 'webmock', '~> 1.6'
16
+ gem.add_development_dependency 'yard', '~> 0.6'
17
+ gem.name = 'oa-enterprise'
18
+ gem.version = Omniauth::VERSION.dup
19
+ gem.summary = %q{Enterprise strategies for OmniAuth.}
20
+ gem.description = %q{Enterprise strategies for OmniAuth.}
21
+ gem.email = ['james.a.rosen@gmail.com', 'ping@intridea.com', 'michael@intridea.com', 'sferik@gmail.com']
22
+ gem.homepage = 'http://github.com/intridea/omniauth'
23
+ gem.authors = ['James A. Rosen', 'Ping Yu', 'Michael Bleigh', 'Erik Michaels-Ober']
24
+ gem.executables = `git ls-files -- bin/*`.split("\n").map{|f| File.basename(f)}
25
+ gem.files = `git ls-files`.split("\n")
26
+ gem.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
27
+ gem.require_paths = ['lib']
28
+ gem.required_rubygems_version = Gem::Requirement.new('>= 1.3.6') if gem.respond_to? :required_rubygems_version=
29
+ end
@@ -0,0 +1,4 @@
1
+ <cas:serviceResponse xmlns:cas='http://www.yale.edu/tp/cas'>
2
+ <cas:authenticationFailure>
3
+ </cas:authenticationFailure>
4
+ </cas:serviceResponse>
@@ -0,0 +1,8 @@
1
+ <cas:serviceResponse xmlns:cas='http://www.yale.edu/tp/cas'>
2
+ <cas:authenticationSuccess>
3
+ <cas:user>psegel</cas:user>
4
+ <cas:first-name>Peter</cas:first-name>
5
+ <cas:last-name>Segel</cas:last-name>
6
+ <hire-date>2004-07-13</hire-date>
7
+ </cas:authenticationSuccess>
8
+ </cas:serviceResponse>
@@ -0,0 +1,94 @@
1
+ require File.dirname(__FILE__) + '/../../spec_helper'
2
+ require 'cgi'
3
+
4
+ describe OmniAuth::Strategies::CAS, :type => :strategy do
5
+
6
+ include OmniAuth::Test::StrategyTestCase
7
+
8
+ def strategy
9
+ @cas_server ||= 'https://cas.example.org'
10
+ [OmniAuth::Strategies::CAS, {:cas_server => @cas_server}]
11
+ end
12
+
13
+ describe 'GET /auth/cas' do
14
+ before do
15
+ get '/auth/cas'
16
+ end
17
+
18
+ it 'should redirect to the CAS server' do
19
+ last_response.should be_redirect
20
+ return_to = CGI.escape(last_request.url + '/callback')
21
+ last_response.headers['Location'].should == @cas_server + '/login?service=' + return_to
22
+ end
23
+ end
24
+
25
+ describe 'GET /auth/cas/callback without a ticket' do
26
+ before do
27
+ get '/auth/cas/callback'
28
+ end
29
+ it 'should fail' do
30
+ last_response.should be_redirect
31
+ last_response.headers['Location'].should =~ /no_ticket/
32
+ end
33
+ end
34
+
35
+ describe 'GET /auth/cas/callback with an invalid ticket' do
36
+ before do
37
+ stub_request(:get, /^https:\/\/cas.example.org(:443)?\/serviceValidate\?([^&]+&)?ticket=9391d/).
38
+ to_return(:body => File.read(File.join(File.dirname(__FILE__), '..', '..', 'fixtures', 'cas_failure.xml')))
39
+ get '/auth/cas/callback?ticket=9391d'
40
+ end
41
+ it 'should fail' do
42
+ last_response.should be_redirect
43
+ last_response.headers['Location'].should =~ /invalid_ticket/
44
+ end
45
+ end
46
+
47
+ describe 'GET /auth/cas/callback with a valid ticket' do
48
+ before do
49
+ stub_request(:get, /^https:\/\/cas.example.org(:443)?\/serviceValidate\?([^&]+&)?ticket=593af/).
50
+ with { |request| @request_uri = request.uri.to_s }.
51
+ to_return(:body => File.read(File.join(File.dirname(__FILE__), '..', '..', 'fixtures', 'cas_success.xml')))
52
+ get '/auth/cas/callback?ticket=593af'
53
+ end
54
+
55
+ it 'should strip the ticket parameter from the callback URL before sending it to the CAS server' do
56
+ @request_uri.scan('ticket=').length.should == 1
57
+ end
58
+
59
+ sets_an_auth_hash
60
+ sets_provider_to 'cas'
61
+ sets_uid_to 'psegel'
62
+
63
+ it 'should set additional user information' do
64
+ extra = (last_request.env['omniauth.auth'] || {})['extra']
65
+ extra.should be_kind_of(Hash)
66
+ extra['first-name'].should == 'Peter'
67
+ extra['last-name'].should == 'Segel'
68
+ extra['hire-date'].should == '2004-07-13'
69
+ end
70
+
71
+ it 'should call through to the master app' do
72
+ last_response.body.should == 'true'
73
+ end
74
+ end
75
+
76
+ unless RUBY_VERSION =~ /^1\.8\.\d$/
77
+ describe 'GET /auth/cas/callback with a valid ticket and gzipped response from the server on ruby >1.8' do
78
+ before do
79
+ zipped = StringIO.new
80
+ Zlib::GzipWriter.wrap zipped do |io|
81
+ io.write File.read(File.join(File.dirname(__FILE__), '..', '..', 'fixtures', 'cas_success.xml'))
82
+ end
83
+ stub_request(:get, /^https:\/\/cas.example.org(:443)?\/serviceValidate\?([^&]+&)?ticket=593af/).
84
+ with { |request| @request_uri = request.uri.to_s }.
85
+ to_return(:body => zipped.string, :headers => { 'content-encoding' => 'gzip' })
86
+ get '/auth/cas/callback?ticket=593af'
87
+ end
88
+
89
+ it 'should call through to the master app when response is gzipped' do
90
+ last_response.body.should == 'true'
91
+ end
92
+ end
93
+ end
94
+ end
@@ -0,0 +1,17 @@
1
+ require 'simplecov'
2
+ SimpleCov.start
3
+ require 'rspec'
4
+ require 'rspec/autorun'
5
+ require 'webmock/rspec'
6
+ require 'rack/test'
7
+ require 'omniauth/core'
8
+ require 'omniauth/test'
9
+ require 'omniauth/enterprise'
10
+
11
+ RSpec.configure do |config|
12
+ config.include WebMock::API
13
+ config.include Rack::Test::Methods
14
+ config.extend OmniAuth::Test::StrategyMacros, :type => :strategy
15
+ end
16
+
17
+ WebMock.disable_net_connect!
metadata CHANGED
@@ -2,53 +2,55 @@
2
2
  name: oa-enterprise
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.2.3
5
+ version: 0.2.4
6
6
  platform: ruby
7
7
  authors:
8
8
  - James A. Rosen
9
9
  - Ping Yu
10
+ - Michael Bleigh
11
+ - Erik Michaels-Ober
10
12
  autorequire:
11
13
  bindir: bin
12
14
  cert_chain: []
13
15
 
14
- date: 2011-04-21 00:00:00 -05:00
15
- default_executable:
16
+ date: 2011-04-22 00:00:00 Z
16
17
  dependencies:
17
18
  - !ruby/object:Gem::Dependency
18
- name: oa-core
19
+ name: addressable
20
+ prerelease: false
19
21
  requirement: &id001 !ruby/object:Gem::Requirement
20
22
  none: false
21
23
  requirements:
22
24
  - - "="
23
25
  - !ruby/object:Gem::Version
24
- version: 0.2.3
26
+ version: 2.2.4
25
27
  type: :runtime
26
- prerelease: false
27
28
  version_requirements: *id001
28
29
  - !ruby/object:Gem::Dependency
29
- name: nokogiri
30
+ name: oa-core
31
+ prerelease: false
30
32
  requirement: &id002 !ruby/object:Gem::Requirement
31
33
  none: false
32
34
  requirements:
33
- - - ~>
35
+ - - "="
34
36
  - !ruby/object:Gem::Version
35
- version: 1.4.2
37
+ version: 0.2.4
36
38
  type: :runtime
37
- prerelease: false
38
39
  version_requirements: *id002
39
40
  - !ruby/object:Gem::Dependency
40
- name: net-ldap
41
+ name: nokogiri
42
+ prerelease: false
41
43
  requirement: &id003 !ruby/object:Gem::Requirement
42
44
  none: false
43
45
  requirements:
44
46
  - - ~>
45
47
  - !ruby/object:Gem::Version
46
- version: 0.1.1
48
+ version: 1.4.2
47
49
  type: :runtime
48
- prerelease: false
49
50
  version_requirements: *id003
50
51
  - !ruby/object:Gem::Dependency
51
- name: rubyntlm
52
+ name: net-ldap
53
+ prerelease: false
52
54
  requirement: &id004 !ruby/object:Gem::Requirement
53
55
  none: false
54
56
  requirements:
@@ -56,109 +58,101 @@ dependencies:
56
58
  - !ruby/object:Gem::Version
57
59
  version: 0.1.1
58
60
  type: :runtime
59
- prerelease: false
60
61
  version_requirements: *id004
61
62
  - !ruby/object:Gem::Dependency
62
- name: pyu-ruby-sasl
63
+ name: rubyntlm
64
+ prerelease: false
63
65
  requirement: &id005 !ruby/object:Gem::Requirement
64
66
  none: false
65
67
  requirements:
66
68
  - - ~>
67
69
  - !ruby/object:Gem::Version
68
- version: 0.0.3.1
70
+ version: 0.1.1
69
71
  type: :runtime
70
- prerelease: false
71
72
  version_requirements: *id005
72
73
  - !ruby/object:Gem::Dependency
73
- name: addressable
74
+ name: pyu-ruby-sasl
75
+ prerelease: false
74
76
  requirement: &id006 !ruby/object:Gem::Requirement
75
77
  none: false
76
78
  requirements:
77
- - - "="
79
+ - - ~>
78
80
  - !ruby/object:Gem::Version
79
- version: 0.2.4
80
- type: :development
81
- prerelease: false
81
+ version: 0.0.3.1
82
+ type: :runtime
82
83
  version_requirements: *id006
83
84
  - !ruby/object:Gem::Dependency
84
- name: rake
85
+ name: simplecov
86
+ prerelease: false
85
87
  requirement: &id007 !ruby/object:Gem::Requirement
86
88
  none: false
87
89
  requirements:
88
- - - ">="
90
+ - - ~>
89
91
  - !ruby/object:Gem::Version
90
- version: "0"
92
+ version: "0.4"
91
93
  type: :development
92
- prerelease: false
93
94
  version_requirements: *id007
94
95
  - !ruby/object:Gem::Dependency
95
- name: mg
96
+ name: rack-test
97
+ prerelease: false
96
98
  requirement: &id008 !ruby/object:Gem::Requirement
97
99
  none: false
98
100
  requirements:
99
101
  - - ~>
100
102
  - !ruby/object:Gem::Version
101
- version: 0.0.8
103
+ version: "0.5"
102
104
  type: :development
103
- prerelease: false
104
105
  version_requirements: *id008
105
106
  - !ruby/object:Gem::Dependency
106
- name: rspec
107
+ name: rake
108
+ prerelease: false
107
109
  requirement: &id009 !ruby/object:Gem::Requirement
108
110
  none: false
109
111
  requirements:
110
112
  - - ~>
111
113
  - !ruby/object:Gem::Version
112
- version: 1.3.0
114
+ version: "0.8"
113
115
  type: :development
114
- prerelease: false
115
116
  version_requirements: *id009
116
117
  - !ruby/object:Gem::Dependency
117
- name: webmock
118
+ name: rspec
119
+ prerelease: false
118
120
  requirement: &id010 !ruby/object:Gem::Requirement
119
121
  none: false
120
122
  requirements:
121
123
  - - ~>
122
124
  - !ruby/object:Gem::Version
123
- version: 1.3.4
125
+ version: "2.5"
124
126
  type: :development
125
- prerelease: false
126
127
  version_requirements: *id010
127
128
  - !ruby/object:Gem::Dependency
128
- name: rack-test
129
+ name: webmock
130
+ prerelease: false
129
131
  requirement: &id011 !ruby/object:Gem::Requirement
130
132
  none: false
131
133
  requirements:
132
134
  - - ~>
133
135
  - !ruby/object:Gem::Version
134
- version: 0.5.4
136
+ version: "1.6"
135
137
  type: :development
136
- prerelease: false
137
138
  version_requirements: *id011
138
139
  - !ruby/object:Gem::Dependency
139
- name: json_pure
140
+ name: yard
141
+ prerelease: false
140
142
  requirement: &id012 !ruby/object:Gem::Requirement
141
143
  none: false
142
144
  requirements:
143
145
  - - ~>
144
146
  - !ruby/object:Gem::Version
145
- version: 1.5.1
147
+ version: "0.6"
146
148
  type: :development
147
- prerelease: false
148
149
  version_requirements: *id012
149
- - !ruby/object:Gem::Dependency
150
- name: evernote
151
- requirement: &id013 !ruby/object:Gem::Requirement
152
- none: false
153
- requirements:
154
- - - ~>
155
- - !ruby/object:Gem::Version
156
- version: 0.9.0
157
- type: :development
158
- prerelease: false
159
- version_requirements: *id013
160
150
  description: Enterprise strategies for OmniAuth.
161
- email: james.a.rosen@gmail.com
151
+ email:
152
+ - james.a.rosen@gmail.com
153
+ - ping@intridea.com
154
+ - michael@intridea.com
155
+ - sferik@gmail.com
162
156
  executables: []
163
157
 
164
158
  extensions: []
@@ -166,16 +160,25 @@ extensions: []
166
160
  extra_rdoc_files: []
167
161
 
168
162
  files:
163
+ - .gemtest
164
+ - .rspec
165
+ - .yardopts
166
+ - Gemfile
167
+ - LICENSE
168
+ - README.rdoc
169
+ - Rakefile
169
170
  - lib/oa-enterprise.rb
170
171
  - lib/omniauth/enterprise.rb
172
+ - lib/omniauth/strategies/cas.rb
171
173
  - lib/omniauth/strategies/cas/configuration.rb
172
174
  - lib/omniauth/strategies/cas/service_ticket_validator.rb
173
- - lib/omniauth/strategies/cas.rb
174
- - lib/omniauth/strategies/ldap/adaptor.rb
175
175
  - lib/omniauth/strategies/ldap.rb
176
- - README.rdoc
177
- - LICENSE
178
- has_rdoc: true
176
+ - lib/omniauth/strategies/ldap/adaptor.rb
177
+ - oa-enterprise.gemspec
178
+ - spec/fixtures/cas_failure.xml
179
+ - spec/fixtures/cas_success.xml
180
+ - spec/omniauth/strategies/cas_spec.rb
181
+ - spec/spec_helper.rb
179
182
  homepage: http://github.com/intridea/omniauth
180
183
  licenses: []
181
184
 
@@ -189,25 +192,23 @@ required_ruby_version: !ruby/object:Gem::Requirement
189
192
  requirements:
190
193
  - - ">="
191
194
  - !ruby/object:Gem::Version
192
- hash: 1711090766640589691
193
- segments:
194
- - 0
195
195
  version: "0"
196
196
  required_rubygems_version: !ruby/object:Gem::Requirement
197
197
  none: false
198
198
  requirements:
199
199
  - - ">="
200
200
  - !ruby/object:Gem::Version
201
- hash: 1711090766640589691
202
- segments:
203
- - 0
204
- version: "0"
201
+ version: 1.3.6
205
202
  requirements: []
206
203
 
207
204
  rubyforge_project:
208
- rubygems_version: 1.6.2
205
+ rubygems_version: 1.7.2
209
206
  signing_key:
210
207
  specification_version: 3
211
208
  summary: Enterprise strategies for OmniAuth.
212
- test_files: []
213
-
209
+ test_files:
210
+ - spec/fixtures/cas_failure.xml
211
+ - spec/fixtures/cas_success.xml
212
+ - spec/omniauth/strategies/cas_spec.rb
213
+ - spec/spec_helper.rb
214
+ has_rdoc: