oa-enterprise 0.2.3 → 0.2.4

Sign up to get free protection for your applications and to get access to all the features.
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: