warden-oauthed 0.0.3 → 0.0.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.
- 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](http://github.com/hassox/warden) strategy that provides OAuth authen
|
|
4
4
|
|
5
5
|
Check out [sinatra_oauthed_template](http://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](http://github.com/
|
11
|
+
Draws inspiration from [warden-github](http://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
|
-
proxyLoc(request).port == 80 ?
|
63
|
-
when
|
64
|
-
proxyLoc(request).port == 443 ?
|
71
|
+
when 'http'
|
72
|
+
proxyLoc(request).port == 80 ? '' : ":#{proxyLoc(request).port}"
|
73
|
+
when 'http'
|
74
|
+
proxyLoc(request).port == 443 ? '' : ":#{proxyLoc(request).port}"
|
65
75
|
end
|
66
|
-
proto =
|
76
|
+
proto = 'http' if proto.nil?
|
67
77
|
"#{proto}://#{proxyLoc(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
|
-
proxyLoc(uri).host.
|
9
|
+
expect(uri.scheme).to eq 'http'
|
10
|
+
expect(proxyLoc(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
|
proxyLoc(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 = 'http://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: []
|