omniauth-cas 1.0.0 → 1.0.1
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/.travis.yml +5 -2
- data/Gemfile +0 -1
- data/README.md +6 -5
- data/Rakefile +6 -4
- data/lib/omniauth/cas/version.rb +1 -1
- data/lib/omniauth/strategies/cas/configuration.rb +13 -1
- data/spec/omniauth/strategies/cas/configuration_spec.rb +57 -0
- metadata +10 -2
data/.travis.yml
CHANGED
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -36,19 +36,20 @@ end
|
|
36
36
|
|
37
37
|
OmniAuth CAS requires at least one of the following two configuration options:
|
38
38
|
|
39
|
-
* `
|
40
|
-
* `
|
39
|
+
* `url` - Defines the URL of your CAS server (i.e. `http://example.org:8080`)
|
40
|
+
* `host` - Defines the host of your CAS server. Optional if using `url`
|
41
|
+
* `login_url` - Defines the URL used to prompt users for their login information. Defaults to `/login`
|
41
42
|
If no `host` is configured, the host application's domain will be used.
|
42
43
|
|
43
44
|
Other configuration options:
|
44
45
|
|
45
|
-
* `port` - The port to use for your configured CAS `host`
|
46
|
-
* `ssl` - TRUE to connect to your CAS server over SSL.
|
46
|
+
* `port` - The port to use for your configured CAS `host`. Optional if using `url`
|
47
|
+
* `ssl` - TRUE to connect to your CAS server over SSL. Optional if using `url`
|
47
48
|
* `service_validate_url` - The URL to use to validate a user. Defaults to `'/serviceValidate'`
|
48
49
|
* `logout_url` - The URL to use to logout a user. Defaults to `'/logout'`
|
49
50
|
* `uid_key` - The user data attribute to use as your user's unique identifier. Defaults to `'user'` (which usually contains the user's login name)
|
50
51
|
* `ca_path` - Optional when `ssl` is `true`. Sets path of a CA certification directory. See [Net::HTTP][net_http] for more details
|
51
|
-
* `disable_ssl_verification
|
52
|
+
* `disable_ssl_verification` - Optional when `ssl` is true. Disables verification.
|
52
53
|
|
53
54
|
## Migrating from OmniAuth 0.3
|
54
55
|
|
data/Rakefile
CHANGED
@@ -1,12 +1,14 @@
|
|
1
1
|
#!/usr/bin/env rake
|
2
|
-
require
|
2
|
+
require 'bundler/gem_tasks'
|
3
3
|
|
4
4
|
require 'rspec/core/rake_task'
|
5
5
|
desc 'Default: run specs.'
|
6
|
-
task :
|
6
|
+
task default: :spec
|
7
7
|
|
8
|
-
desc
|
9
|
-
RSpec::Core::RakeTask.new
|
8
|
+
desc 'Run specs'
|
9
|
+
RSpec::Core::RakeTask.new(:spec) do |t|
|
10
|
+
t.rspec_opts = '--require spec_helper --color --order rand'
|
11
|
+
end
|
10
12
|
|
11
13
|
task :test do
|
12
14
|
fail %q{This application uses RSpec. Try running "rake spec"}
|
data/lib/omniauth/cas/version.rb
CHANGED
@@ -6,11 +6,23 @@ module OmniAuth
|
|
6
6
|
def initialize( options )
|
7
7
|
@options = options
|
8
8
|
|
9
|
+
extract_url if @options['url']
|
10
|
+
|
9
11
|
validate_cas_setup
|
10
12
|
end
|
11
13
|
|
14
|
+
def extract_url
|
15
|
+
url = Addressable::URI.parse( @options.delete('url') )
|
16
|
+
|
17
|
+
@options.merge!(
|
18
|
+
'host' => url.host,
|
19
|
+
'port' => url.port,
|
20
|
+
'ssl' => url.scheme == 'https'
|
21
|
+
)
|
22
|
+
end
|
23
|
+
|
12
24
|
def validate_cas_setup
|
13
|
-
if @options.host.nil?
|
25
|
+
if @options.host.nil? || @options.login_url.nil?
|
14
26
|
raise ArgumentError.new(":host and :login_url MUST be provided")
|
15
27
|
end
|
16
28
|
end
|
@@ -0,0 +1,57 @@
|
|
1
|
+
describe OmniAuth::Strategies::CAS::Configuration do
|
2
|
+
subject { described_class.new }
|
3
|
+
|
4
|
+
let(:options) { Hashie::Mash.new params }
|
5
|
+
|
6
|
+
let(:params) do
|
7
|
+
{
|
8
|
+
'host' => 'example.org',
|
9
|
+
'login_url' => '/'
|
10
|
+
}
|
11
|
+
end
|
12
|
+
|
13
|
+
describe '#initialize' do
|
14
|
+
let(:params) do
|
15
|
+
{
|
16
|
+
'url' => 'http://example.org:8080',
|
17
|
+
'login_url' => '/'
|
18
|
+
}
|
19
|
+
end
|
20
|
+
|
21
|
+
it 'should initialize the configuration' do
|
22
|
+
described_class.any_instance.should_receive(:extract_url)
|
23
|
+
described_class.any_instance.should_receive(:validate_cas_setup)
|
24
|
+
|
25
|
+
described_class.new options
|
26
|
+
end
|
27
|
+
|
28
|
+
context 'with a URL property' do
|
29
|
+
subject { described_class.new( options ).instance_variable_get('@options') }
|
30
|
+
|
31
|
+
it 'should parse the URL' do
|
32
|
+
subject.host.should eq 'example.org'
|
33
|
+
subject.port.should eq 8080
|
34
|
+
subject.ssl.should be_false
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
context 'without a URL property' do
|
39
|
+
let(:params) do
|
40
|
+
{
|
41
|
+
'host' => 'example.org',
|
42
|
+
'login_url' => '/'
|
43
|
+
}
|
44
|
+
end
|
45
|
+
|
46
|
+
subject { described_class.new( options ) }
|
47
|
+
|
48
|
+
it 'should not parse the url' do
|
49
|
+
described_class.any_instance
|
50
|
+
.should_receive(:extract_url)
|
51
|
+
.never
|
52
|
+
|
53
|
+
described_class.new options
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: omniauth-cas
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.1
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-
|
12
|
+
date: 2012-12-10 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: omniauth
|
@@ -179,6 +179,7 @@ files:
|
|
179
179
|
- omniauth-cas.gemspec
|
180
180
|
- spec/fixtures/cas_failure.xml
|
181
181
|
- spec/fixtures/cas_success.xml
|
182
|
+
- spec/omniauth/strategies/cas/configuration_spec.rb
|
182
183
|
- spec/omniauth/strategies/cas/service_ticket_validator_spec.rb
|
183
184
|
- spec/omniauth/strategies/cas_spec.rb
|
184
185
|
- spec/spec_helper.rb
|
@@ -194,12 +195,18 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
194
195
|
- - ! '>='
|
195
196
|
- !ruby/object:Gem::Version
|
196
197
|
version: '0'
|
198
|
+
segments:
|
199
|
+
- 0
|
200
|
+
hash: 3594521613564365784
|
197
201
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
198
202
|
none: false
|
199
203
|
requirements:
|
200
204
|
- - ! '>='
|
201
205
|
- !ruby/object:Gem::Version
|
202
206
|
version: '0'
|
207
|
+
segments:
|
208
|
+
- 0
|
209
|
+
hash: 3594521613564365784
|
203
210
|
requirements: []
|
204
211
|
rubyforge_project:
|
205
212
|
rubygems_version: 1.8.24
|
@@ -209,6 +216,7 @@ summary: CAS Strategy for OmniAuth
|
|
209
216
|
test_files:
|
210
217
|
- spec/fixtures/cas_failure.xml
|
211
218
|
- spec/fixtures/cas_success.xml
|
219
|
+
- spec/omniauth/strategies/cas/configuration_spec.rb
|
212
220
|
- spec/omniauth/strategies/cas/service_ticket_validator_spec.rb
|
213
221
|
- spec/omniauth/strategies/cas_spec.rb
|
214
222
|
- spec/spec_helper.rb
|