warden-oauthed 0.0.3 → 0.0.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.rubocop.yml +2 -0
- data/Gemfile +1 -1
- data/Guardfile +7 -6
- data/README.md +3 -1
- data/Rakefile +3 -2
- data/config.ru +4 -3
- data/lib/warden-oauthed/proxy.rb +14 -5
- data/lib/warden-oauthed/strategy.rb +30 -20
- data/lib/warden-oauthed/user.rb +4 -5
- data/lib/warden-oauthed/version.rb +1 -1
- data/spec/app.rb +5 -7
- data/spec/oauth_spec.rb +6 -10
- data/spec/proxy_spec.rb +13 -10
- data/spec/spec_helper.rb +5 -0
- data/warden-oauthed.gemspec +18 -17
- metadata +84 -22
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f92341ab7e33153157360cd3386b9408a085e62d
|
4
|
+
data.tar.gz: aee8b78372bd816e9c5e99cb53c5a400e9526444
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 00204cf50b4846001a83b67ca9204f61427438f6bac28d4f3cb2802b3be854853d752ccf5d746310ed9a3d4cb36b78f57124f37f3c272d290e91db99617ed22d
|
7
|
+
data.tar.gz: a91596bd6744ad437a62ca16f86dacb3de404dd1aa5dc282103a78cf896e74ec021e8208d15acb37b7a763ef9f76ccb1be0764ae6b96614d58f8e6fd569b7f16
|
data/.rubocop.yml
ADDED
data/Gemfile
CHANGED
data/Guardfile
CHANGED
@@ -1,10 +1,11 @@
|
|
1
1
|
group :red_green_refactor, halt_on_fail: true do
|
2
|
-
guard :rspec, cmd:
|
2
|
+
guard :rspec, cmd: 'bundle exec rspec', failed_mode: 'focus' do
|
3
3
|
watch(%r{^spec/.+_spec\.rb$})
|
4
|
-
watch(%r{^lib/(.+)\.rb$})
|
4
|
+
watch(%r{^lib/(.+)\.rb$}) { |m| "spec/#{m[1]}_spec.rb" }
|
5
|
+
end
|
6
|
+
|
7
|
+
guard :rubocop, all_on_start: false do
|
8
|
+
watch(/.+\.rb$/)
|
9
|
+
watch(%r{(?:.+/)?\.rubocop\.yml$}) { |m| File.dirname(m[0]) }
|
5
10
|
end
|
6
|
-
# guard :rubocop, all_on_start: false do
|
7
|
-
# watch(/.+\.rb$/)
|
8
|
-
# watch(%r{(?:.+/)?\.rubocop\.yml$}) { |m| File.dirname(m[0]) }
|
9
|
-
# end
|
10
11
|
end
|
data/README.md
CHANGED
@@ -4,6 +4,8 @@ A [warden](https://github.com/hassox/warden) strategy that provides OAuth authen
|
|
4
4
|
|
5
5
|
Check out [sinatra_oauthed_template](https://github.com/sethherr/sinatra_oauthed_template), a sinatra template that uses this strategy to set up authentication without a database.
|
6
6
|
|
7
|
+
Importantly, `sinatra_oauthed_template` sets all the environmental variables in the `.env` file so this will work.
|
8
|
+
|
7
9
|
---
|
8
10
|
|
9
|
-
Draws inspiration from [warden-github](https://github.com/
|
11
|
+
Draws inspiration from [warden-github](https://github.com/atmos/warden-github/) :shipit:
|
data/Rakefile
CHANGED
@@ -3,10 +3,11 @@ require 'rubygems/specification'
|
|
3
3
|
require 'date'
|
4
4
|
require 'bundler'
|
5
5
|
|
6
|
-
task :
|
6
|
+
task default: [:spec]
|
7
7
|
|
8
8
|
require 'rspec/core/rake_task'
|
9
|
-
|
9
|
+
|
10
|
+
desc 'Run specs'
|
10
11
|
RSpec::Core::RakeTask.new do |t|
|
11
12
|
t.pattern = 'spec/**/*_spec.rb'
|
12
13
|
end
|
data/config.ru
CHANGED
@@ -10,8 +10,9 @@ end
|
|
10
10
|
|
11
11
|
Bundler.require(:runtime)
|
12
12
|
|
13
|
-
|
14
|
-
|
15
|
-
require File.expand_path(File.join(
|
13
|
+
file_dir = File.dirname(__FILE__)
|
14
|
+
$LOAD_PATH << file_dir + '/lib'
|
15
|
+
require File.expand_path(File.join(file_dir, 'lib', 'warden-oauthed'))
|
16
|
+
require File.expand_path(File.join(file_dir, 'spec', 'app'))
|
16
17
|
|
17
18
|
run Example.app
|
data/lib/warden-oauthed/proxy.rb
CHANGED
@@ -4,7 +4,11 @@ module Warden
|
|
4
4
|
class Proxy
|
5
5
|
attr_accessor :client_id, :secret, :scopes, :oauth_domain, :callback_url
|
6
6
|
def initialize(client_id, secret, scopes, oauth_domain, callback_url)
|
7
|
-
@client_id
|
7
|
+
@client_id = client_id
|
8
|
+
@secret = secret
|
9
|
+
@scopes = scopes
|
10
|
+
@oauth_domain = oauth_domain
|
11
|
+
@callback_url = callback_url
|
8
12
|
end
|
9
13
|
|
10
14
|
def ssl_options
|
@@ -12,20 +16,25 @@ module Warden
|
|
12
16
|
end
|
13
17
|
|
14
18
|
def client
|
15
|
-
@client ||= OAuth2::Client.new(
|
19
|
+
@client ||= OAuth2::Client.new(
|
20
|
+
@client_id,
|
21
|
+
@secret,
|
16
22
|
ssl: ssl_options,
|
17
23
|
site: oauth_domain,
|
18
24
|
authorize_url: '/oauth/authorize')
|
19
25
|
end
|
20
26
|
|
21
27
|
def api_for(code)
|
22
|
-
client.auth_code.get_token(
|
28
|
+
client.auth_code.get_token(
|
29
|
+
code,
|
30
|
+
redirect_uri: callback_url
|
31
|
+
)
|
23
32
|
end
|
24
33
|
|
25
34
|
def authorize_url
|
26
35
|
client.auth_code.authorize_url(
|
27
|
-
:
|
28
|
-
:
|
36
|
+
scope: scopes,
|
37
|
+
redirect_uri: callback_url
|
29
38
|
)
|
30
39
|
end
|
31
40
|
end
|
@@ -12,25 +12,29 @@ Warden::Strategies.add(:oauthed) do
|
|
12
12
|
def authenticate!
|
13
13
|
if params['code']
|
14
14
|
begin
|
15
|
-
|
16
|
-
|
17
|
-
resp = api.get "#{api_url}/me" do |request|
|
18
|
-
request.params['access_token'] = api.token
|
19
|
-
end.body
|
20
|
-
|
21
|
-
user = MultiJson.load(resp)
|
22
|
-
success!(Warden::Oauthed::Oauth::User.new(user['user'], api.token))
|
15
|
+
get_user_api_response(params)
|
23
16
|
rescue OAuth2::Error
|
24
|
-
%(<p>Outdated ?code=#{params['code']}:</p><p>#{
|
17
|
+
%(<p>Outdated ?code=#{params['code']}:</p><p>#{$ERROR_INFO}</p>
|
18
|
+
<p><a href="/auth/oauthed">Retry</a></p>)
|
25
19
|
end
|
26
20
|
else
|
27
21
|
env['rack.session']['return_to'] = env['REQUEST_URI']
|
28
|
-
throw(:warden, [
|
22
|
+
throw(:warden, [302, { 'Location' => authorize_url }, []])
|
29
23
|
end
|
30
24
|
end
|
31
25
|
|
32
26
|
private
|
33
27
|
|
28
|
+
def get_user_api_response(params)
|
29
|
+
api = api_for(params['code'])
|
30
|
+
resp = api.get "#{api_url}/me" do |request|
|
31
|
+
request.params['access_token'] = api.token
|
32
|
+
end.body
|
33
|
+
|
34
|
+
user = MultiJson.load(resp)
|
35
|
+
success!(Warden::Oauthed::Oauth::User.new(user['user'], api.token))
|
36
|
+
end
|
37
|
+
|
34
38
|
def oauth_client
|
35
39
|
oauth_proxy.client
|
36
40
|
end
|
@@ -44,26 +48,32 @@ Warden::Strategies.add(:oauthed) do
|
|
44
48
|
end
|
45
49
|
|
46
50
|
def oauth_proxy
|
47
|
-
@oauth_proxy ||= Warden::Oauthed::Oauth::Proxy.new(
|
51
|
+
@oauth_proxy ||= Warden::Oauthed::Oauth::Proxy.new(
|
52
|
+
env['warden'].config[:oauthed_client_id],
|
48
53
|
env['warden'].config[:oauthed_secret],
|
49
54
|
env['warden'].config[:oauthed_scopes],
|
50
55
|
env['warden'].config[:oauthed_oauth_domain],
|
51
|
-
callback_url
|
56
|
+
callback_url
|
57
|
+
)
|
52
58
|
end
|
53
59
|
|
54
60
|
def callback_url
|
55
|
-
absolute_url(
|
61
|
+
absolute_url(
|
62
|
+
request,
|
63
|
+
env['warden'].config[:oauthed_callback_url],
|
64
|
+
env['HTTP_X_FORWARDED_PROTO']
|
65
|
+
)
|
56
66
|
end
|
57
67
|
|
58
|
-
def absolute_url(request, suffix = nil, proto =
|
59
|
-
port_part =
|
68
|
+
def absolute_url(request, suffix = nil, proto = 'http')
|
69
|
+
port_part =
|
60
70
|
case request.scheme
|
61
|
-
when
|
62
|
-
request.port == 80 ?
|
63
|
-
when
|
64
|
-
request.port == 443 ?
|
71
|
+
when 'http'
|
72
|
+
request.port == 80 ? '' : ":#{request.port}"
|
73
|
+
when 'https'
|
74
|
+
request.port == 443 ? '' : ":#{request.port}"
|
65
75
|
end
|
66
|
-
proto =
|
76
|
+
proto = 'http' if proto.nil?
|
67
77
|
"#{proto}://#{request.host}#{port_part}#{suffix}"
|
68
78
|
end
|
69
79
|
end
|
data/lib/warden-oauthed/user.rb
CHANGED
@@ -2,14 +2,13 @@ module Warden
|
|
2
2
|
module Oauthed
|
3
3
|
module Oauth
|
4
4
|
class User < Struct.new(:attribs, :token)
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
req = Faraday.new(url: "#{ENV['API_BASE_URL'] }/#{path}")
|
5
|
+
def oauthed_raw_request(path, _params = {})
|
6
|
+
puts "#{ENV['API_BASE_URL']}/#{path}"
|
7
|
+
req = Faraday.new(url: "#{ENV['API_BASE_URL']}/#{path}")
|
9
8
|
req.authorization :Bearer, token
|
10
9
|
req.get.body
|
11
10
|
end
|
12
|
-
|
11
|
+
|
13
12
|
def oauthed_request(path, params = {})
|
14
13
|
MultiJson.load(oauthed_raw_request(path, params))
|
15
14
|
end
|
data/spec/app.rb
CHANGED
@@ -2,8 +2,8 @@ require 'sinatra'
|
|
2
2
|
|
3
3
|
module Example
|
4
4
|
class App < Sinatra::Base
|
5
|
-
enable
|
6
|
-
enable
|
5
|
+
enable :sessions
|
6
|
+
enable :raise_errors
|
7
7
|
disable :show_exceptions
|
8
8
|
|
9
9
|
use Warden::Manager do |manager|
|
@@ -18,9 +18,7 @@ module Example
|
|
18
18
|
|
19
19
|
helpers do
|
20
20
|
def ensure_authenticated
|
21
|
-
unless env['warden'].authenticate!
|
22
|
-
throw(:warden)
|
23
|
-
end
|
21
|
+
throw(:warden) unless env['warden'].authenticate!
|
24
22
|
end
|
25
23
|
|
26
24
|
def user
|
@@ -45,14 +43,14 @@ module Example
|
|
45
43
|
|
46
44
|
get '/logout' do
|
47
45
|
env['warden'].logout
|
48
|
-
|
46
|
+
'Peace!'
|
49
47
|
end
|
50
48
|
end
|
51
49
|
|
52
50
|
class BadAuthentication < Sinatra::Base
|
53
51
|
get '/unauthenticated' do
|
54
52
|
status 403
|
55
|
-
|
53
|
+
'Unable to authenticate, sorry bud.'
|
56
54
|
end
|
57
55
|
end
|
58
56
|
|
data/spec/oauth_spec.rb
CHANGED
@@ -2,21 +2,17 @@ require File.dirname(__FILE__) + '/spec_helper'
|
|
2
2
|
|
3
3
|
describe 'Warden::Oauthed' do
|
4
4
|
it 'requesting an url that requires authentication redirects to github' do
|
5
|
-
ENV['OAUTH_BASE_URL'] = 'http://localhost:3000'
|
6
|
-
ENV['APPLICATION_SCOPES_REQUESTED'] = 'public'
|
7
|
-
ENV['APPLICATION_CLIENT_ID'] = 'fd6df6f74658a9202d401aaba38223a7f79e7572926ce845e5268f5171e5b2d5'
|
8
|
-
ENV['APPLICATION_CLIENT_SECRET'] = 'afee0e20322e5d73dff82f29baf5989afd3422557056129aad29d974e56df677'
|
9
5
|
response = get '/'
|
10
6
|
|
11
7
|
uri = Addressable::URI.parse(response.headers['Location'])
|
12
8
|
|
13
|
-
uri.scheme.
|
14
|
-
uri.host.
|
9
|
+
expect(uri.scheme).to eq 'http'
|
10
|
+
expect(uri.host).to eq 'localhost'
|
15
11
|
|
16
12
|
params = uri.query_values
|
17
|
-
params['response_type'].
|
18
|
-
params['scope'].
|
19
|
-
params['client_id'].
|
20
|
-
params['redirect_uri'].
|
13
|
+
expect(params['response_type']).to eq 'code'
|
14
|
+
expect(params['scope']).to eq 'public'
|
15
|
+
expect(params['client_id']).to match(/\w{20}/)
|
16
|
+
expect(params['redirect_uri']).to eq 'http://example.org/auth/oauthed/callback'
|
21
17
|
end
|
22
18
|
end
|
data/spec/proxy_spec.rb
CHANGED
@@ -1,12 +1,15 @@
|
|
1
1
|
require File.dirname(__FILE__) + '/spec_helper'
|
2
2
|
|
3
3
|
describe 'Warden::Oauthed::Oauth::Proxy' do
|
4
|
-
before
|
4
|
+
before :all do
|
5
5
|
sha = Digest::SHA1.hexdigest(Time.now.to_s)
|
6
|
-
@proxy =
|
6
|
+
@proxy = Warden::Oauthed::Oauth::Proxy.new(
|
7
|
+
sha[0..19],
|
8
|
+
sha[0..39],
|
7
9
|
'public',
|
8
10
|
'http://localhost:3000',
|
9
|
-
'http://example.org/auth/oauthed/callback'
|
11
|
+
'http://example.org/auth/oauthed/callback'
|
12
|
+
)
|
10
13
|
end
|
11
14
|
|
12
15
|
it 'returns an authorize url' do
|
@@ -16,17 +19,17 @@ describe 'Warden::Oauthed::Oauth::Proxy' do
|
|
16
19
|
uri.host.should eql('localhost')
|
17
20
|
|
18
21
|
params = uri.query_values
|
19
|
-
params['response_type'].
|
20
|
-
params['scope'].
|
21
|
-
params['client_id'].
|
22
|
-
params['redirect_uri'].
|
22
|
+
expect(params['response_type']).to eq 'code'
|
23
|
+
expect(params['scope']).to eq 'public'
|
24
|
+
expect(params['client_id']).to match(/\w{20}/)
|
25
|
+
expect(params['redirect_uri']).to eq 'http://example.org/auth/oauthed/callback'
|
23
26
|
end
|
24
27
|
|
25
|
-
it
|
26
|
-
@proxy.
|
28
|
+
it 'has a client object' do
|
29
|
+
expect(@proxy).not_to be nil
|
27
30
|
end
|
28
31
|
|
29
32
|
# it "returns access tokens" do
|
30
|
-
# lambda { @proxy.access_token_for(/\w{20}/.gen) }.should_not raise_error
|
33
|
+
# lambda { @proxy.access_token_for(/\w{20}/.gen) }.should_not raise_error
|
31
34
|
# end
|
32
35
|
end
|
data/spec/spec_helper.rb
CHANGED
@@ -25,3 +25,8 @@ RSpec.configure do |config|
|
|
25
25
|
Example.app
|
26
26
|
end
|
27
27
|
end
|
28
|
+
|
29
|
+
ENV['OAUTH_BASE_URL'] ||= 'http://localhost:3000'
|
30
|
+
ENV['APPLICATION_SCOPES_REQUESTED'] ||= 'public'
|
31
|
+
ENV['APPLICATION_CLIENT_ID'] ||= 'fd6df6f74658a9202d401aaba38223a7f79e7572926ce845e5268f5171e5b2d5'
|
32
|
+
ENV['APPLICATION_CLIENT_SECRET'] ||= 'afee0e20322e5d73dff82f29baf5989afd3422557056129aad29d974e56df677'
|
data/warden-oauthed.gemspec
CHANGED
@@ -5,30 +5,31 @@ require 'warden-oauthed/version'
|
|
5
5
|
Gem::Specification.new do |s|
|
6
6
|
s.name = 'warden-oauthed'
|
7
7
|
s.version = Warden::Oauthed::VERSION
|
8
|
-
s.platform = Gem::Platform::RUBY
|
9
8
|
s.authors = ['David Jaress', 'Seth Herr']
|
10
9
|
s.homepage = 'https://github.com/Zensaburou/warden-oauthed'
|
11
|
-
s.summary = 'A warden strategy for easy oauth integration with OAuth2 provided by Doorkeeper'
|
12
10
|
s.license = 'MIT'
|
11
|
+
s.summary = 'A warden strategy for easy OAuth2 rack based
|
12
|
+
authentication'
|
13
13
|
s.description = s.summary
|
14
14
|
|
15
15
|
s.add_dependency 'json', '~>1.5'
|
16
|
-
s.add_dependency 'multi_json', '~>1.11.2'
|
17
|
-
s.add_dependency 'warden', '
|
18
|
-
s.add_dependency 'oauth2', '~>0.5.2'
|
16
|
+
s.add_dependency 'multi_json', '~> 1.11', '>= 1.11.2'
|
17
|
+
s.add_dependency 'warden', '>=1.0'
|
18
|
+
s.add_dependency 'oauth2', '~>0.5', '>=0.5.2'
|
19
19
|
|
20
|
-
s.add_development_dependency 'rack',
|
21
|
-
s.add_development_dependency 'rake'
|
22
|
-
s.add_development_dependency 'rerun'
|
23
|
-
s.add_development_dependency 'rspec',
|
24
|
-
s.add_development_dependency 'webrat'
|
25
|
-
s.add_development_dependency 'sinatra'
|
26
|
-
s.add_development_dependency 'shotgun'
|
27
|
-
s.add_development_dependency 'addressable', '~>2.2.0'
|
28
|
-
s.add_development_dependency 'rack-test',
|
20
|
+
s.add_development_dependency 'rack', '~> 1.6', '>=1.6.0'
|
21
|
+
s.add_development_dependency 'rake', '~> 10.4', '>=10.4.2'
|
22
|
+
s.add_development_dependency 'rerun', '~> 0.11', '>=0.11.0'
|
23
|
+
s.add_development_dependency 'rspec', '~> 2.8', '>=2.8.0'
|
24
|
+
s.add_development_dependency 'webrat', '~> 0.7', '>=0.7.3'
|
25
|
+
s.add_development_dependency 'sinatra', '~> 1.4', '>=1.4.6'
|
26
|
+
s.add_development_dependency 'shotgun', '~> 0.9', '>=0.9.1'
|
27
|
+
s.add_development_dependency 'addressable', '~> 2.2', '>=2.2.0'
|
28
|
+
s.add_development_dependency 'rack-test', '~> 0.5', '>=0.5.3'
|
29
29
|
|
30
30
|
s.files = `git ls-files`.split("\n")
|
31
|
-
s.test_files = `git ls-files -- {
|
32
|
-
s.executables = `git ls-files -- bin/*`.split("\n")
|
33
|
-
|
31
|
+
s.test_files = `git ls-files -- {spec}/*`.split("\n")
|
32
|
+
s.executables = `git ls-files -- bin/*`.split("\n")
|
33
|
+
.map { |f| File.basename(f) }
|
34
|
+
s.require_paths = ['lib']
|
34
35
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: warden-oauthed
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- David Jaress
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2015-10-
|
12
|
+
date: 2015-10-14 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: json
|
@@ -30,6 +30,9 @@ dependencies:
|
|
30
30
|
requirement: !ruby/object:Gem::Requirement
|
31
31
|
requirements:
|
32
32
|
- - "~>"
|
33
|
+
- !ruby/object:Gem::Version
|
34
|
+
version: '1.11'
|
35
|
+
- - ">="
|
33
36
|
- !ruby/object:Gem::Version
|
34
37
|
version: 1.11.2
|
35
38
|
type: :runtime
|
@@ -37,20 +40,23 @@ dependencies:
|
|
37
40
|
version_requirements: !ruby/object:Gem::Requirement
|
38
41
|
requirements:
|
39
42
|
- - "~>"
|
43
|
+
- !ruby/object:Gem::Version
|
44
|
+
version: '1.11'
|
45
|
+
- - ">="
|
40
46
|
- !ruby/object:Gem::Version
|
41
47
|
version: 1.11.2
|
42
48
|
- !ruby/object:Gem::Dependency
|
43
49
|
name: warden
|
44
50
|
requirement: !ruby/object:Gem::Requirement
|
45
51
|
requirements:
|
46
|
-
- - "
|
52
|
+
- - ">="
|
47
53
|
- !ruby/object:Gem::Version
|
48
54
|
version: '1.0'
|
49
55
|
type: :runtime
|
50
56
|
prerelease: false
|
51
57
|
version_requirements: !ruby/object:Gem::Requirement
|
52
58
|
requirements:
|
53
|
-
- - "
|
59
|
+
- - ">="
|
54
60
|
- !ruby/object:Gem::Version
|
55
61
|
version: '1.0'
|
56
62
|
- !ruby/object:Gem::Dependency
|
@@ -58,6 +64,9 @@ dependencies:
|
|
58
64
|
requirement: !ruby/object:Gem::Requirement
|
59
65
|
requirements:
|
60
66
|
- - "~>"
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0.5'
|
69
|
+
- - ">="
|
61
70
|
- !ruby/object:Gem::Version
|
62
71
|
version: 0.5.2
|
63
72
|
type: :runtime
|
@@ -65,6 +74,9 @@ dependencies:
|
|
65
74
|
version_requirements: !ruby/object:Gem::Requirement
|
66
75
|
requirements:
|
67
76
|
- - "~>"
|
77
|
+
- !ruby/object:Gem::Version
|
78
|
+
version: '0.5'
|
79
|
+
- - ">="
|
68
80
|
- !ruby/object:Gem::Version
|
69
81
|
version: 0.5.2
|
70
82
|
- !ruby/object:Gem::Dependency
|
@@ -72,6 +84,9 @@ dependencies:
|
|
72
84
|
requirement: !ruby/object:Gem::Requirement
|
73
85
|
requirements:
|
74
86
|
- - "~>"
|
87
|
+
- !ruby/object:Gem::Version
|
88
|
+
version: '1.6'
|
89
|
+
- - ">="
|
75
90
|
- !ruby/object:Gem::Version
|
76
91
|
version: 1.6.0
|
77
92
|
type: :development
|
@@ -79,41 +94,59 @@ dependencies:
|
|
79
94
|
version_requirements: !ruby/object:Gem::Requirement
|
80
95
|
requirements:
|
81
96
|
- - "~>"
|
97
|
+
- !ruby/object:Gem::Version
|
98
|
+
version: '1.6'
|
99
|
+
- - ">="
|
82
100
|
- !ruby/object:Gem::Version
|
83
101
|
version: 1.6.0
|
84
102
|
- !ruby/object:Gem::Dependency
|
85
103
|
name: rake
|
86
104
|
requirement: !ruby/object:Gem::Requirement
|
87
105
|
requirements:
|
106
|
+
- - "~>"
|
107
|
+
- !ruby/object:Gem::Version
|
108
|
+
version: '10.4'
|
88
109
|
- - ">="
|
89
110
|
- !ruby/object:Gem::Version
|
90
|
-
version:
|
111
|
+
version: 10.4.2
|
91
112
|
type: :development
|
92
113
|
prerelease: false
|
93
114
|
version_requirements: !ruby/object:Gem::Requirement
|
94
115
|
requirements:
|
116
|
+
- - "~>"
|
117
|
+
- !ruby/object:Gem::Version
|
118
|
+
version: '10.4'
|
95
119
|
- - ">="
|
96
120
|
- !ruby/object:Gem::Version
|
97
|
-
version:
|
121
|
+
version: 10.4.2
|
98
122
|
- !ruby/object:Gem::Dependency
|
99
123
|
name: rerun
|
100
124
|
requirement: !ruby/object:Gem::Requirement
|
101
125
|
requirements:
|
126
|
+
- - "~>"
|
127
|
+
- !ruby/object:Gem::Version
|
128
|
+
version: '0.11'
|
102
129
|
- - ">="
|
103
130
|
- !ruby/object:Gem::Version
|
104
|
-
version:
|
131
|
+
version: 0.11.0
|
105
132
|
type: :development
|
106
133
|
prerelease: false
|
107
134
|
version_requirements: !ruby/object:Gem::Requirement
|
108
135
|
requirements:
|
136
|
+
- - "~>"
|
137
|
+
- !ruby/object:Gem::Version
|
138
|
+
version: '0.11'
|
109
139
|
- - ">="
|
110
140
|
- !ruby/object:Gem::Version
|
111
|
-
version:
|
141
|
+
version: 0.11.0
|
112
142
|
- !ruby/object:Gem::Dependency
|
113
143
|
name: rspec
|
114
144
|
requirement: !ruby/object:Gem::Requirement
|
115
145
|
requirements:
|
116
146
|
- - "~>"
|
147
|
+
- !ruby/object:Gem::Version
|
148
|
+
version: '2.8'
|
149
|
+
- - ">="
|
117
150
|
- !ruby/object:Gem::Version
|
118
151
|
version: 2.8.0
|
119
152
|
type: :development
|
@@ -121,55 +154,79 @@ dependencies:
|
|
121
154
|
version_requirements: !ruby/object:Gem::Requirement
|
122
155
|
requirements:
|
123
156
|
- - "~>"
|
157
|
+
- !ruby/object:Gem::Version
|
158
|
+
version: '2.8'
|
159
|
+
- - ">="
|
124
160
|
- !ruby/object:Gem::Version
|
125
161
|
version: 2.8.0
|
126
162
|
- !ruby/object:Gem::Dependency
|
127
163
|
name: webrat
|
128
164
|
requirement: !ruby/object:Gem::Requirement
|
129
165
|
requirements:
|
166
|
+
- - "~>"
|
167
|
+
- !ruby/object:Gem::Version
|
168
|
+
version: '0.7'
|
130
169
|
- - ">="
|
131
170
|
- !ruby/object:Gem::Version
|
132
|
-
version:
|
171
|
+
version: 0.7.3
|
133
172
|
type: :development
|
134
173
|
prerelease: false
|
135
174
|
version_requirements: !ruby/object:Gem::Requirement
|
136
175
|
requirements:
|
176
|
+
- - "~>"
|
177
|
+
- !ruby/object:Gem::Version
|
178
|
+
version: '0.7'
|
137
179
|
- - ">="
|
138
180
|
- !ruby/object:Gem::Version
|
139
|
-
version:
|
181
|
+
version: 0.7.3
|
140
182
|
- !ruby/object:Gem::Dependency
|
141
183
|
name: sinatra
|
142
184
|
requirement: !ruby/object:Gem::Requirement
|
143
185
|
requirements:
|
186
|
+
- - "~>"
|
187
|
+
- !ruby/object:Gem::Version
|
188
|
+
version: '1.4'
|
144
189
|
- - ">="
|
145
190
|
- !ruby/object:Gem::Version
|
146
|
-
version:
|
191
|
+
version: 1.4.6
|
147
192
|
type: :development
|
148
193
|
prerelease: false
|
149
194
|
version_requirements: !ruby/object:Gem::Requirement
|
150
195
|
requirements:
|
196
|
+
- - "~>"
|
197
|
+
- !ruby/object:Gem::Version
|
198
|
+
version: '1.4'
|
151
199
|
- - ">="
|
152
200
|
- !ruby/object:Gem::Version
|
153
|
-
version:
|
201
|
+
version: 1.4.6
|
154
202
|
- !ruby/object:Gem::Dependency
|
155
203
|
name: shotgun
|
156
204
|
requirement: !ruby/object:Gem::Requirement
|
157
205
|
requirements:
|
206
|
+
- - "~>"
|
207
|
+
- !ruby/object:Gem::Version
|
208
|
+
version: '0.9'
|
158
209
|
- - ">="
|
159
210
|
- !ruby/object:Gem::Version
|
160
|
-
version:
|
211
|
+
version: 0.9.1
|
161
212
|
type: :development
|
162
213
|
prerelease: false
|
163
214
|
version_requirements: !ruby/object:Gem::Requirement
|
164
215
|
requirements:
|
216
|
+
- - "~>"
|
217
|
+
- !ruby/object:Gem::Version
|
218
|
+
version: '0.9'
|
165
219
|
- - ">="
|
166
220
|
- !ruby/object:Gem::Version
|
167
|
-
version:
|
221
|
+
version: 0.9.1
|
168
222
|
- !ruby/object:Gem::Dependency
|
169
223
|
name: addressable
|
170
224
|
requirement: !ruby/object:Gem::Requirement
|
171
225
|
requirements:
|
172
226
|
- - "~>"
|
227
|
+
- !ruby/object:Gem::Version
|
228
|
+
version: '2.2'
|
229
|
+
- - ">="
|
173
230
|
- !ruby/object:Gem::Version
|
174
231
|
version: 2.2.0
|
175
232
|
type: :development
|
@@ -177,6 +234,9 @@ dependencies:
|
|
177
234
|
version_requirements: !ruby/object:Gem::Requirement
|
178
235
|
requirements:
|
179
236
|
- - "~>"
|
237
|
+
- !ruby/object:Gem::Version
|
238
|
+
version: '2.2'
|
239
|
+
- - ">="
|
180
240
|
- !ruby/object:Gem::Version
|
181
241
|
version: 2.2.0
|
182
242
|
- !ruby/object:Gem::Dependency
|
@@ -184,6 +244,9 @@ dependencies:
|
|
184
244
|
requirement: !ruby/object:Gem::Requirement
|
185
245
|
requirements:
|
186
246
|
- - "~>"
|
247
|
+
- !ruby/object:Gem::Version
|
248
|
+
version: '0.5'
|
249
|
+
- - ">="
|
187
250
|
- !ruby/object:Gem::Version
|
188
251
|
version: 0.5.3
|
189
252
|
type: :development
|
@@ -191,10 +254,12 @@ dependencies:
|
|
191
254
|
version_requirements: !ruby/object:Gem::Requirement
|
192
255
|
requirements:
|
193
256
|
- - "~>"
|
257
|
+
- !ruby/object:Gem::Version
|
258
|
+
version: '0.5'
|
259
|
+
- - ">="
|
194
260
|
- !ruby/object:Gem::Version
|
195
261
|
version: 0.5.3
|
196
|
-
description: A warden strategy for easy
|
197
|
-
Doorkeeper
|
262
|
+
description: A warden strategy for easy OAuth2 rack based authentication
|
198
263
|
email:
|
199
264
|
executables: []
|
200
265
|
extensions: []
|
@@ -202,6 +267,7 @@ extra_rdoc_files: []
|
|
202
267
|
files:
|
203
268
|
- ".gitignore"
|
204
269
|
- ".rspec"
|
270
|
+
- ".rubocop.yml"
|
205
271
|
- ".travis.yml"
|
206
272
|
- Gemfile
|
207
273
|
- Guardfile
|
@@ -242,9 +308,5 @@ rubyforge_project:
|
|
242
308
|
rubygems_version: 2.4.8
|
243
309
|
signing_key:
|
244
310
|
specification_version: 4
|
245
|
-
summary: A warden strategy for easy
|
246
|
-
test_files:
|
247
|
-
- spec/app.rb
|
248
|
-
- spec/oauth_spec.rb
|
249
|
-
- spec/proxy_spec.rb
|
250
|
-
- spec/spec_helper.rb
|
311
|
+
summary: A warden strategy for easy OAuth2 rack based authentication
|
312
|
+
test_files: []
|