warden 0.2.1 → 0.2.2
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/.gitignore +2 -0
- data/Rakefile +17 -39
- data/VERSION +1 -0
- data/lib/warden/proxy.rb +15 -11
- data/script/destroy +14 -0
- data/script/generate +14 -0
- data/spec/warden/authenticated_data_store_spec.rb +4 -2
- data/spec/warden/hooks_spec.rb +1 -1
- data/spec/warden/proxy_spec.rb +60 -8
- data/warden.gemspec +85 -0
- metadata +41 -14
data/.gitignore
ADDED
data/Rakefile
CHANGED
@@ -1,34 +1,29 @@
|
|
1
1
|
require 'rubygems'
|
2
|
-
require '
|
3
|
-
require 'rubygems/specification'
|
4
|
-
require 'date'
|
2
|
+
require 'rack'
|
5
3
|
require 'spec/rake/spectask'
|
6
4
|
|
7
5
|
GEM = "warden"
|
8
6
|
GEM_VERSION = "0.2.1"
|
9
|
-
|
7
|
+
AUTHORS = ["Daniel Neighman"]
|
10
8
|
EMAIL = "has.sox@gmail.com"
|
11
9
|
HOMEPAGE = "http://github.com/hassox/warden"
|
12
10
|
SUMMARY = "Rack middleware that provides authentication for rack applications"
|
13
11
|
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
s.require_path = 'lib'
|
30
|
-
s.autorequire = GEM
|
31
|
-
s.files = %w(LICENSE README.textile Rakefile TODO.textile) + Dir.glob("{lib,spec}/**/*")
|
12
|
+
begin
|
13
|
+
require 'jeweler'
|
14
|
+
Jeweler::Tasks.new do |gem|
|
15
|
+
gem.name = GEM
|
16
|
+
gem.summary = SUMMARY
|
17
|
+
gem.email = EMAIL
|
18
|
+
gem.homepage = HOMEPAGE
|
19
|
+
gem.authors = AUTHORS
|
20
|
+
gem.rubyforge_project = "warden"
|
21
|
+
# gem is a Gem::Specification... see http://www.rubygems.org/read/chapter/20 for additional settings
|
22
|
+
|
23
|
+
gem.add_dependency "rack", ">= 1.0.0"
|
24
|
+
end
|
25
|
+
rescue LoadError
|
26
|
+
puts "Jeweler (or a dependency) not available. Install it with: sudo gem install jeweler"
|
32
27
|
end
|
33
28
|
|
34
29
|
task :default => :spec
|
@@ -38,20 +33,3 @@ Spec::Rake::SpecTask.new do |t|
|
|
38
33
|
t.spec_files = FileList['spec/**/*_spec.rb']
|
39
34
|
t.spec_opts = %w(-fs --color)
|
40
35
|
end
|
41
|
-
|
42
|
-
|
43
|
-
Rake::GemPackageTask.new(spec) do |pkg|
|
44
|
-
pkg.gem_spec = spec
|
45
|
-
end
|
46
|
-
|
47
|
-
desc "install the gem locally"
|
48
|
-
task :install => [:package] do
|
49
|
-
sh %{sudo gem install pkg/#{GEM}-#{GEM_VERSION}}
|
50
|
-
end
|
51
|
-
|
52
|
-
desc "create a gemspec file"
|
53
|
-
task :make_spec do
|
54
|
-
File.open("#{GEM}.gemspec", "w") do |file|
|
55
|
-
file.puts spec.to_ruby
|
56
|
-
end
|
57
|
-
end
|
data/VERSION
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
0.2.2
|
data/lib/warden/proxy.rb
CHANGED
@@ -26,18 +26,17 @@ module Warden
|
|
26
26
|
|
27
27
|
# Check to see if there is an authenticated user for the given scope.
|
28
28
|
# When scope is not specified, :default is assumed.
|
29
|
+
# This will not try to reconstitute the user from the session and will simply check for the
|
30
|
+
# existance of a session key
|
29
31
|
#
|
30
32
|
# Parameters:
|
31
|
-
#
|
32
|
-
# opts - an options hash that contains the :scope of the user to check
|
33
|
+
# scope - the scope to check for authentication. Defaults to :default
|
33
34
|
#
|
34
35
|
# Example:
|
35
|
-
# env['warden'].authenticated?(:
|
36
|
+
# env['warden'].authenticated?(:admin)
|
36
37
|
# :api: public
|
37
|
-
def authenticated?(
|
38
|
-
scope
|
39
|
-
_perform_authentication(*args)
|
40
|
-
!user(scope).nil?
|
38
|
+
def authenticated?(scope = :default)
|
39
|
+
!_session["warden.user.#{scope}.key"].nil?
|
41
40
|
end # authenticated?
|
42
41
|
|
43
42
|
# Run the authentiation strategies for the given strategies.
|
@@ -101,7 +100,7 @@ module Warden
|
|
101
100
|
#
|
102
101
|
# :api: public
|
103
102
|
def user(scope = :default)
|
104
|
-
@users[scope]
|
103
|
+
@users[scope] ||= lookup_user_from_session(scope)
|
105
104
|
end
|
106
105
|
|
107
106
|
# Provides a scoped session data for authenticated users.
|
@@ -116,7 +115,7 @@ module Warden
|
|
116
115
|
#
|
117
116
|
# :api: public
|
118
117
|
def session(scope = :default)
|
119
|
-
raise NotAuthenticated, "#{scope.inspect} user is not logged in" unless authenticated?(
|
118
|
+
raise NotAuthenticated, "#{scope.inspect} user is not logged in" unless authenticated?(scope)
|
120
119
|
_session["warden.user.#{scope}.session"] ||= {}
|
121
120
|
end
|
122
121
|
|
@@ -159,9 +158,10 @@ module Warden
|
|
159
158
|
def _perform_authentication(*args)
|
160
159
|
scope = scope_from_args(args)
|
161
160
|
opts = opts_from_args(args)
|
161
|
+
|
162
162
|
# Look for an existing user in the session for this scope
|
163
|
-
if
|
164
|
-
return
|
163
|
+
if the_user = user(scope)
|
164
|
+
return the_user
|
165
165
|
end
|
166
166
|
|
167
167
|
# If there was no user in the session. See if we can get one from the request
|
@@ -196,5 +196,9 @@ module Warden
|
|
196
196
|
Hash === args.last ? args.pop : {}
|
197
197
|
end
|
198
198
|
|
199
|
+
# :api: private
|
200
|
+
def lookup_user_from_session(scope)
|
201
|
+
set_user(Warden::Manager._fetch_user(_session, scope), :scope => scope)
|
202
|
+
end
|
199
203
|
end # Proxy
|
200
204
|
end # Warden
|
data/script/destroy
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
APP_ROOT = File.expand_path(File.join(File.dirname(__FILE__), '.'))
|
3
|
+
|
4
|
+
begin
|
5
|
+
require 'rubigen'
|
6
|
+
rescue LoadError
|
7
|
+
require 'rubygems'
|
8
|
+
require 'rubigen'
|
9
|
+
end
|
10
|
+
require 'rubigen/scripts/destroy'
|
11
|
+
|
12
|
+
ARGV.shift if ['--help', '-h'].include?(ARGV[0])
|
13
|
+
RubiGen::Base.use_component_sources! [:newgem_simple, :test_unit]
|
14
|
+
RubiGen::Scripts::Destroy.new.run(ARGV)
|
data/script/generate
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
APP_ROOT = File.expand_path(File.join(File.dirname(__FILE__), '.'))
|
3
|
+
|
4
|
+
begin
|
5
|
+
require 'rubigen'
|
6
|
+
rescue LoadError
|
7
|
+
require 'rubygems'
|
8
|
+
require 'rubigen'
|
9
|
+
end
|
10
|
+
require 'rubigen/scripts/generate'
|
11
|
+
|
12
|
+
ARGV.shift if ['--help', '-h'].include?(ARGV[0])
|
13
|
+
RubiGen::Base.use_component_sources! [:newgem_simple, :test_unit]
|
14
|
+
RubiGen::Scripts::Generate.new.run(ARGV)
|
@@ -13,8 +13,10 @@ describe "authenticated data store" do
|
|
13
13
|
|
14
14
|
it "should store data for the default scope" do
|
15
15
|
app = lambda do |e|
|
16
|
-
e['warden'].
|
17
|
-
e['warden'].
|
16
|
+
e['warden'].authenticate(:pass)
|
17
|
+
e['warden'].authenticate(:pass, :scope => :foo)
|
18
|
+
e['warden'].should be_authenticated
|
19
|
+
e['warden'].should be_authenticated(:foo)
|
18
20
|
|
19
21
|
# Store the data for :deafult
|
20
22
|
e['warden'].session[:key] = "value"
|
data/spec/warden/hooks_spec.rb
CHANGED
@@ -60,7 +60,7 @@ describe "standard authentication hooks" do
|
|
60
60
|
it "should run each after_authentication hook after authentication is run" do
|
61
61
|
RAM.after_authentication{|u,a,o| a.env['warden.spec.hook.baz'] = "run baz"}
|
62
62
|
RAM.after_authentication{|u,a,o| a.env['warden.spec.hook.paz'] = "run paz"}
|
63
|
-
app = lambda{|e| e['warden'].
|
63
|
+
app = lambda{|e| e['warden'].authenticate(:pass); valid_response}
|
64
64
|
env = env_with_params
|
65
65
|
setup_rack(app).call(env)
|
66
66
|
env['warden.spec.hook.baz'].should == 'run baz'
|
data/spec/warden/proxy_spec.rb
CHANGED
@@ -9,6 +9,7 @@ describe Warden::Proxy do
|
|
9
9
|
before(:each) do
|
10
10
|
@basic_app = lambda{|env| [200,{'Content-Type' => 'text/plain'},'OK']}
|
11
11
|
@authd_app = lambda do |e|
|
12
|
+
e['warden'].authenticate
|
12
13
|
if e['warden'].authenticated?
|
13
14
|
[200,{'Content-Type' => 'text/plain'},"OK"]
|
14
15
|
else
|
@@ -50,6 +51,7 @@ describe Warden::Proxy do
|
|
50
51
|
it "should allow authentication in my application" do
|
51
52
|
env = env_with_params('/', :username => "fred", :password => "sekrit")
|
52
53
|
app = lambda do |env|
|
54
|
+
env['warden'].authenticate
|
53
55
|
env['warden'].should be_authenticated
|
54
56
|
env['warden.spec.strategies'].should == [:password]
|
55
57
|
end
|
@@ -58,6 +60,7 @@ describe Warden::Proxy do
|
|
58
60
|
it "should be false in my application" do
|
59
61
|
env = env_with_params("/", :foo => "bar")
|
60
62
|
app = lambda do |env|
|
63
|
+
env['warden'].authenticate
|
61
64
|
env['warden'].should_not be_authenticated
|
62
65
|
env['warden.spec.strategies'].should == [:password]
|
63
66
|
valid_response
|
@@ -68,7 +71,8 @@ describe Warden::Proxy do
|
|
68
71
|
it "should allow me to select which strategies I use in my appliction" do
|
69
72
|
env = env_with_params("/", :foo => "bar")
|
70
73
|
app = lambda do |env|
|
71
|
-
env['warden'].
|
74
|
+
env['warden'].authenticate(:failz)
|
75
|
+
env['warden'].should_not be_authenticated
|
72
76
|
env['warden.spec.strategies'].should == [:failz]
|
73
77
|
valid_response
|
74
78
|
end
|
@@ -78,7 +82,8 @@ describe Warden::Proxy do
|
|
78
82
|
it "should allow me to get access to the user at warden.user." do
|
79
83
|
env = env_with_params("/")
|
80
84
|
app = lambda do |env|
|
81
|
-
env['warden'].
|
85
|
+
env['warden'].authenticate(:pass)
|
86
|
+
env['warden'].should be_authenticated
|
82
87
|
env['warden.spec.strategies'].should == [:pass]
|
83
88
|
valid_response
|
84
89
|
end
|
@@ -88,7 +93,8 @@ describe Warden::Proxy do
|
|
88
93
|
it "should try multiple authentication strategies" do
|
89
94
|
env = env_with_params("/")
|
90
95
|
app = lambda do |env|
|
91
|
-
env['warden'].
|
96
|
+
env['warden'].authenticate(:password,:pass)
|
97
|
+
env['warden'].should be_authenticated
|
92
98
|
env['warden.spec.strategies'].should == [:password, :pass]
|
93
99
|
valid_response
|
94
100
|
end
|
@@ -109,7 +115,8 @@ describe Warden::Proxy do
|
|
109
115
|
it "should look for an active user in the session with authenticate?" do
|
110
116
|
app = lambda do |env|
|
111
117
|
env['rack.session']['warden.user.foo_scope.key'] = "a foo user"
|
112
|
-
env['warden'].
|
118
|
+
env['warden'].authenticate(:pass, :scope => :foo_scope)
|
119
|
+
env['warden'].authenticated?(:foo_scope)
|
113
120
|
valid_response
|
114
121
|
end
|
115
122
|
env = env_with_params
|
@@ -121,9 +128,12 @@ describe Warden::Proxy do
|
|
121
128
|
app = lambda do |env|
|
122
129
|
env['rack.session']['warden.user.foo.key'] = 'foo user'
|
123
130
|
env['rack.session']['warden.user.bar.key'] = 'bar user'
|
124
|
-
env['warden'].
|
125
|
-
env['warden'].
|
126
|
-
env['warden'].
|
131
|
+
env['warden'].authenticate(:pass, :scope => :foo)
|
132
|
+
env['warden'].authenticate(:pass, :scope => :bar)
|
133
|
+
env['warden'].authenticate(:password)
|
134
|
+
env['warden'].authenticated?(:foo).should be_true
|
135
|
+
env['warden'].authenticated?(:bar).should be_true
|
136
|
+
env['warden'].authenticated?.should be_false
|
127
137
|
valid_response
|
128
138
|
end
|
129
139
|
env = env_with_params
|
@@ -139,7 +149,8 @@ describe Warden::Proxy do
|
|
139
149
|
it "should store the user into the session" do
|
140
150
|
env = env_with_params("/")
|
141
151
|
app = lambda do |env|
|
142
|
-
env['warden'].
|
152
|
+
env['warden'].authenticate(:pass)
|
153
|
+
env['warden'].should be_authenticated
|
143
154
|
env['warden'].user.should == "Valid User"
|
144
155
|
env['rack.session']["warden.user.default.key"].should == "Valid User"
|
145
156
|
valid_response
|
@@ -147,6 +158,47 @@ describe Warden::Proxy do
|
|
147
158
|
setup_rack(app).call(env)
|
148
159
|
end
|
149
160
|
end
|
161
|
+
|
162
|
+
describe "get user" do
|
163
|
+
before(:each) do
|
164
|
+
@env['rack.session'] ||= {}
|
165
|
+
@env['rack.session'].delete("warden.user.default.key")
|
166
|
+
end
|
167
|
+
|
168
|
+
it "should return nil when not logged in" do
|
169
|
+
app = lambda do |env|
|
170
|
+
env['warden'].user.should be_nil
|
171
|
+
valid_response
|
172
|
+
end
|
173
|
+
setup_rack(app).call(@env)
|
174
|
+
end
|
175
|
+
|
176
|
+
it "should not run strategies when not logged in" do
|
177
|
+
app = lambda do |env|
|
178
|
+
env['warden'].user.should be_nil
|
179
|
+
env['warden.spec.strategies'].should be_nil
|
180
|
+
valid_response
|
181
|
+
end
|
182
|
+
setup_rack(app).call(@env)
|
183
|
+
end
|
184
|
+
|
185
|
+
describe "previously logged in" do
|
186
|
+
|
187
|
+
before(:each) do
|
188
|
+
@env['rack.session']['warden.user.default.key'] = "A Previous User"
|
189
|
+
end
|
190
|
+
|
191
|
+
it "should take the user from the session when logged in" do
|
192
|
+
app = lambda do |env|
|
193
|
+
env['warden'].user.should == "A Previous User"
|
194
|
+
valid_response
|
195
|
+
end
|
196
|
+
setup_rack(app).call(@env)
|
197
|
+
end
|
198
|
+
|
199
|
+
it "should not run strategies when the user exists in the session"
|
200
|
+
end
|
201
|
+
end
|
150
202
|
|
151
203
|
describe "logout" do
|
152
204
|
|
data/warden.gemspec
ADDED
@@ -0,0 +1,85 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
|
3
|
+
Gem::Specification.new do |s|
|
4
|
+
s.name = %q{warden}
|
5
|
+
s.version = "0.2.2"
|
6
|
+
|
7
|
+
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
8
|
+
s.authors = ["Daniel Neighman"]
|
9
|
+
s.date = %q{2009-07-07}
|
10
|
+
s.email = %q{has.sox@gmail.com}
|
11
|
+
s.extra_rdoc_files = [
|
12
|
+
"LICENSE",
|
13
|
+
"README.textile"
|
14
|
+
]
|
15
|
+
s.files = [
|
16
|
+
".gitignore",
|
17
|
+
"LICENSE",
|
18
|
+
"README.textile",
|
19
|
+
"Rakefile",
|
20
|
+
"TODO.textile",
|
21
|
+
"VERSION",
|
22
|
+
"lib/warden.rb",
|
23
|
+
"lib/warden/authentication/hooks.rb",
|
24
|
+
"lib/warden/authentication/strategies.rb",
|
25
|
+
"lib/warden/authentication/strategy_base.rb",
|
26
|
+
"lib/warden/errors.rb",
|
27
|
+
"lib/warden/manager.rb",
|
28
|
+
"lib/warden/mixins/common.rb",
|
29
|
+
"lib/warden/proxy.rb",
|
30
|
+
"script/destroy",
|
31
|
+
"script/generate",
|
32
|
+
"spec/helpers/request_helper.rb",
|
33
|
+
"spec/spec_helper.rb",
|
34
|
+
"spec/warden/authenticated_data_store_spec.rb",
|
35
|
+
"spec/warden/errors_spec.rb",
|
36
|
+
"spec/warden/hooks_spec.rb",
|
37
|
+
"spec/warden/manager_spec.rb",
|
38
|
+
"spec/warden/proxy_spec.rb",
|
39
|
+
"spec/warden/strategies/failz.rb",
|
40
|
+
"spec/warden/strategies/invalid.rb",
|
41
|
+
"spec/warden/strategies/pass.rb",
|
42
|
+
"spec/warden/strategies/pass_without_user.rb",
|
43
|
+
"spec/warden/strategies/password.rb",
|
44
|
+
"spec/warden/strategies_spec.rb",
|
45
|
+
"spec/warden/strategy_base_spec.rb",
|
46
|
+
"spec/warden_spec.rb",
|
47
|
+
"warden.gemspec"
|
48
|
+
]
|
49
|
+
s.homepage = %q{http://github.com/hassox/warden}
|
50
|
+
s.rdoc_options = ["--charset=UTF-8"]
|
51
|
+
s.require_paths = ["lib"]
|
52
|
+
s.rubyforge_project = %q{warden}
|
53
|
+
s.rubygems_version = %q{1.3.3}
|
54
|
+
s.summary = %q{Rack middleware that provides authentication for rack applications}
|
55
|
+
s.test_files = [
|
56
|
+
"spec/helpers/request_helper.rb",
|
57
|
+
"spec/spec_helper.rb",
|
58
|
+
"spec/warden/authenticated_data_store_spec.rb",
|
59
|
+
"spec/warden/errors_spec.rb",
|
60
|
+
"spec/warden/hooks_spec.rb",
|
61
|
+
"spec/warden/manager_spec.rb",
|
62
|
+
"spec/warden/proxy_spec.rb",
|
63
|
+
"spec/warden/strategies/failz.rb",
|
64
|
+
"spec/warden/strategies/invalid.rb",
|
65
|
+
"spec/warden/strategies/pass.rb",
|
66
|
+
"spec/warden/strategies/pass_without_user.rb",
|
67
|
+
"spec/warden/strategies/password.rb",
|
68
|
+
"spec/warden/strategies_spec.rb",
|
69
|
+
"spec/warden/strategy_base_spec.rb",
|
70
|
+
"spec/warden_spec.rb"
|
71
|
+
]
|
72
|
+
|
73
|
+
if s.respond_to? :specification_version then
|
74
|
+
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
75
|
+
s.specification_version = 3
|
76
|
+
|
77
|
+
if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
|
78
|
+
s.add_runtime_dependency(%q<rack>, [">= 1.0.0"])
|
79
|
+
else
|
80
|
+
s.add_dependency(%q<rack>, [">= 1.0.0"])
|
81
|
+
end
|
82
|
+
else
|
83
|
+
s.add_dependency(%q<rack>, [">= 1.0.0"])
|
84
|
+
end
|
85
|
+
end
|
metadata
CHANGED
@@ -1,33 +1,44 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: warden
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Daniel Neighman
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-
|
12
|
+
date: 2009-07-07 00:00:00 +10:00
|
13
13
|
default_executable:
|
14
|
-
dependencies:
|
15
|
-
|
16
|
-
|
14
|
+
dependencies:
|
15
|
+
- !ruby/object:Gem::Dependency
|
16
|
+
name: rack
|
17
|
+
type: :runtime
|
18
|
+
version_requirement:
|
19
|
+
version_requirements: !ruby/object:Gem::Requirement
|
20
|
+
requirements:
|
21
|
+
- - ">="
|
22
|
+
- !ruby/object:Gem::Version
|
23
|
+
version: 1.0.0
|
24
|
+
version:
|
25
|
+
description:
|
17
26
|
email: has.sox@gmail.com
|
18
27
|
executables: []
|
19
28
|
|
20
29
|
extensions: []
|
21
30
|
|
22
31
|
extra_rdoc_files:
|
23
|
-
- README.textile
|
24
32
|
- LICENSE
|
25
|
-
-
|
33
|
+
- README.textile
|
26
34
|
files:
|
35
|
+
- .gitignore
|
27
36
|
- LICENSE
|
28
37
|
- README.textile
|
29
38
|
- Rakefile
|
30
39
|
- TODO.textile
|
40
|
+
- VERSION
|
41
|
+
- lib/warden.rb
|
31
42
|
- lib/warden/authentication/hooks.rb
|
32
43
|
- lib/warden/authentication/strategies.rb
|
33
44
|
- lib/warden/authentication/strategy_base.rb
|
@@ -35,7 +46,8 @@ files:
|
|
35
46
|
- lib/warden/manager.rb
|
36
47
|
- lib/warden/mixins/common.rb
|
37
48
|
- lib/warden/proxy.rb
|
38
|
-
-
|
49
|
+
- script/destroy
|
50
|
+
- script/generate
|
39
51
|
- spec/helpers/request_helper.rb
|
40
52
|
- spec/spec_helper.rb
|
41
53
|
- spec/warden/authenticated_data_store_spec.rb
|
@@ -51,13 +63,14 @@ files:
|
|
51
63
|
- spec/warden/strategies_spec.rb
|
52
64
|
- spec/warden/strategy_base_spec.rb
|
53
65
|
- spec/warden_spec.rb
|
66
|
+
- warden.gemspec
|
54
67
|
has_rdoc: true
|
55
68
|
homepage: http://github.com/hassox/warden
|
56
69
|
licenses: []
|
57
70
|
|
58
71
|
post_install_message:
|
59
|
-
rdoc_options:
|
60
|
-
|
72
|
+
rdoc_options:
|
73
|
+
- --charset=UTF-8
|
61
74
|
require_paths:
|
62
75
|
- lib
|
63
76
|
required_ruby_version: !ruby/object:Gem::Requirement
|
@@ -74,10 +87,24 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
74
87
|
version:
|
75
88
|
requirements: []
|
76
89
|
|
77
|
-
rubyforge_project:
|
90
|
+
rubyforge_project: warden
|
78
91
|
rubygems_version: 1.3.3
|
79
92
|
signing_key:
|
80
93
|
specification_version: 3
|
81
94
|
summary: Rack middleware that provides authentication for rack applications
|
82
|
-
test_files:
|
83
|
-
|
95
|
+
test_files:
|
96
|
+
- spec/helpers/request_helper.rb
|
97
|
+
- spec/spec_helper.rb
|
98
|
+
- spec/warden/authenticated_data_store_spec.rb
|
99
|
+
- spec/warden/errors_spec.rb
|
100
|
+
- spec/warden/hooks_spec.rb
|
101
|
+
- spec/warden/manager_spec.rb
|
102
|
+
- spec/warden/proxy_spec.rb
|
103
|
+
- spec/warden/strategies/failz.rb
|
104
|
+
- spec/warden/strategies/invalid.rb
|
105
|
+
- spec/warden/strategies/pass.rb
|
106
|
+
- spec/warden/strategies/pass_without_user.rb
|
107
|
+
- spec/warden/strategies/password.rb
|
108
|
+
- spec/warden/strategies_spec.rb
|
109
|
+
- spec/warden/strategy_base_spec.rb
|
110
|
+
- spec/warden_spec.rb
|