rack-oauth2 0.11.0 → 0.12.0

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 CHANGED
@@ -14,7 +14,7 @@ tmtags
14
14
  *.swp
15
15
 
16
16
  ## PROJECT::GENERAL
17
- coverage
17
+ coverage*
18
18
  rdoc
19
19
  pkg
20
20
 
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- rack-oauth2 (0.10.1)
4
+ rack-oauth2 (0.11.0)
5
5
  activesupport (>= 2.3)
6
6
  attr_required (>= 0.0.3)
7
7
  httpclient (>= 2.2.0.2)
@@ -12,43 +12,50 @@ PATH
12
12
  GEM
13
13
  remote: http://rubygems.org/
14
14
  specs:
15
- activesupport (3.1.0)
15
+ activesupport (3.2.1)
16
+ i18n (~> 0.6)
16
17
  multi_json (~> 1.0)
17
18
  addressable (2.2.6)
18
19
  attr_required (0.0.3)
19
20
  bouncy-castle-java (1.5.0146.1)
20
- crack (0.1.8)
21
+ configatron (2.9.0)
22
+ yamler (>= 0.1.0)
23
+ cover_me (1.2.0)
24
+ configatron
25
+ hashie
26
+ crack (0.3.1)
21
27
  diff-lcs (1.1.3)
22
- httpclient (2.2.1)
28
+ hashie (1.2.0)
29
+ httpclient (2.2.4)
23
30
  i18n (0.6.0)
24
- jruby-openssl (0.7.4)
25
- bouncy-castle-java
26
- json (1.6.0)
27
- multi_json (1.0.3)
28
- rack (1.3.2)
29
- rake (0.9.2)
30
- rcov (0.9.10)
31
- rcov (0.9.10-java)
32
- rspec (2.6.0)
33
- rspec-core (~> 2.6.0)
34
- rspec-expectations (~> 2.6.0)
35
- rspec-mocks (~> 2.6.0)
36
- rspec-core (2.6.4)
37
- rspec-expectations (2.6.0)
31
+ jruby-openssl (0.7.5)
32
+ bouncy-castle-java (>= 1.5.0146.1)
33
+ json (1.6.5)
34
+ json (1.6.5-java)
35
+ multi_json (1.0.4)
36
+ rack (1.4.1)
37
+ rake (0.9.2.2)
38
+ rspec (2.8.0)
39
+ rspec-core (~> 2.8.0)
40
+ rspec-expectations (~> 2.8.0)
41
+ rspec-mocks (~> 2.8.0)
42
+ rspec-core (2.8.0)
43
+ rspec-expectations (2.8.0)
38
44
  diff-lcs (~> 1.1.2)
39
- rspec-mocks (2.6.0)
40
- webmock (1.7.6)
41
- addressable (> 2.2.5, ~> 2.2)
45
+ rspec-mocks (2.8.0)
46
+ webmock (1.7.10)
47
+ addressable (~> 2.2, > 2.2.5)
42
48
  crack (>= 0.1.7)
49
+ yamler (0.1.0)
43
50
 
44
51
  PLATFORMS
45
52
  java
46
53
  ruby
47
54
 
48
55
  DEPENDENCIES
56
+ cover_me (>= 1.2.0)
49
57
  jruby-openssl (>= 0.7)
50
58
  rack-oauth2!
51
59
  rake (>= 0.8)
52
- rcov (>= 0.9)
53
60
  rspec (>= 2)
54
61
  webmock (>= 1.6.2)
data/Rakefile CHANGED
@@ -4,9 +4,16 @@ Bundler::GemHelper.install_tasks
4
4
  require 'rspec/core/rake_task'
5
5
  RSpec::Core::RakeTask.new(:spec)
6
6
 
7
- RSpec::Core::RakeTask.new(:rcov) do |spec|
8
- spec.rcov = true
9
- spec.rcov_opts = ['-Ilib -Ispec --exclude spec,gems']
7
+ if RUBY_VERSION >= '1.9'
8
+ require 'cover_me'
9
+ CoverMe.config do |c|
10
+ c.file_pattern = /(#{CoverMe.config.project.root}\/lib\/.+\.rb)/i
11
+ end
12
+ else
13
+ RSpec::Core::RakeTask.new(:rcov) do |spec|
14
+ spec.rcov = true
15
+ spec.rcov_opts = ['-Ilib -Ispec --exclude spec,gems']
16
+ end
10
17
  end
11
18
 
12
19
  task :default => :spec
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.11.0
1
+ 0.12.0
@@ -76,7 +76,7 @@ module Rack
76
76
  def generate_nonce
77
77
  [
78
78
  (Time.now.utc - @issued_at).to_i,
79
- ActiveSupport::SecureRandom.hex
79
+ SecureRandom.hex
80
80
  ].join(':')
81
81
  end
82
82
  end
@@ -46,7 +46,7 @@ module Rack
46
46
  end
47
47
 
48
48
  def access_token!
49
- params = @grant.to_hash
49
+ params = @grant.as_json
50
50
  params.merge!(
51
51
  :client_id => self.identifier,
52
52
  :client_secret => self.secret
@@ -11,7 +11,7 @@ module Rack
11
11
  attr_missing!
12
12
  end
13
13
 
14
- def to_hash
14
+ def as_json(options = {})
15
15
  (required_attributes + optional_attributes).inject({
16
16
  :grant_type => self.class.name.demodulize.underscore.to_sym
17
17
  }) do |hash, key|
@@ -6,11 +6,38 @@ module Rack
6
6
  class Token < Abstract::Handler
7
7
  def call(env)
8
8
  request = Request.new(env)
9
- request.profile.new(&@authenticator).call(env).finish
9
+ grant_type_for(request).new(&@authenticator).call(env).finish
10
10
  rescue Rack::OAuth2::Server::Abstract::Error => e
11
11
  e.finish
12
12
  end
13
13
 
14
+ private
15
+
16
+ def grant_type_for(request)
17
+ case request.grant_type
18
+ when 'authorization_code'
19
+ AuthorizationCode
20
+ when 'password'
21
+ Password
22
+ when 'client_credentials'
23
+ ClientCredentials
24
+ when 'refresh_token'
25
+ RefreshToken
26
+ when ''
27
+ request.attr_missing!
28
+ else
29
+ extensions.detect do |extension|
30
+ extension.grant_type_for? request.grant_type
31
+ end || request.unsupported_grant_type!
32
+ end
33
+ end
34
+
35
+ def extensions
36
+ Extension.constants.sort.collect do |key|
37
+ Extension.const_get key
38
+ end
39
+ end
40
+
14
41
  class Request < Abstract::Request
15
42
  attr_required :grant_type
16
43
  attr_optional :client_secret
@@ -24,25 +51,7 @@ module Rack
24
51
  super
25
52
  @client_secret = params['client_secret']
26
53
  end
27
- @grant_type = params['grant_type']
28
- end
29
-
30
- def profile
31
- case params['grant_type'].to_s
32
- when 'authorization_code'
33
- AuthorizationCode
34
- when 'password'
35
- Password
36
- when 'client_credentials'
37
- ClientCredentials
38
- when 'refresh_token'
39
- RefreshToken
40
- when ''
41
- attr_missing!
42
- else
43
- # TODO: support extensions
44
- unsupported_grant_type!("'#{params['grant_type']}' isn't supported.")
45
- end
54
+ @grant_type = params['grant_type'].to_s
46
55
  end
47
56
  end
48
57
 
@@ -67,8 +76,9 @@ module Rack
67
76
  end
68
77
  end
69
78
 
70
- require 'rack/oauth2/server/token/error'
71
79
  require 'rack/oauth2/server/token/authorization_code'
72
80
  require 'rack/oauth2/server/token/password'
73
81
  require 'rack/oauth2/server/token/client_credentials'
74
- require 'rack/oauth2/server/token/refresh_token'
82
+ require 'rack/oauth2/server/token/refresh_token'
83
+ require 'rack/oauth2/server/token/extension'
84
+ require 'rack/oauth2/server/token/error'
@@ -0,0 +1,12 @@
1
+ module Rack
2
+ module OAuth2
3
+ module Server
4
+ class Token
5
+ module Extension
6
+ # Define your extension in this namespace and load it explicitly.
7
+ # extension/assertion/jwt.rb would be good example for you.
8
+ end
9
+ end
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,34 @@
1
+ module Rack
2
+ module OAuth2
3
+ module Server
4
+ class Token
5
+ module Extension
6
+ class JWT < Abstract::Handler
7
+ class << self
8
+ def grant_type_for?(grant_type)
9
+ grant_type == 'urn:ietf:params:oauth:grant-type:jwt-bearer'
10
+ end
11
+ end
12
+
13
+ def call(env)
14
+ @request = Request.new env
15
+ @response = Response.new request
16
+ super
17
+ end
18
+
19
+ class Request < Authorize::Token::Request
20
+ attr_required :assertion
21
+
22
+ def initialize(env)
23
+ super
24
+ @grant_type = :jwt
25
+ @assertion = params['assertion']
26
+ attr_missing!
27
+ end
28
+ end
29
+ end
30
+ end
31
+ end
32
+ end
33
+ end
34
+ end
data/rack-oauth2.gemspec CHANGED
@@ -20,7 +20,11 @@ Gem::Specification.new do |s|
20
20
  s.add_runtime_dependency "i18n"
21
21
  s.add_runtime_dependency "attr_required", ">= 0.0.3"
22
22
  s.add_development_dependency "rake", ">= 0.8"
23
- s.add_development_dependency "rcov", ">= 0.9"
23
+ if RUBY_VERSION >= '1.9'
24
+ s.add_development_dependency "cover_me", ">= 1.2.0"
25
+ else
26
+ s.add_development_dependency "rcov", ">= 0.9"
27
+ end
24
28
  s.add_development_dependency "rspec", ">= 2"
25
29
  s.add_development_dependency "webmock", ">= 1.6.2"
26
30
  end
@@ -15,7 +15,7 @@ describe Rack::OAuth2::Client::Grant::AuthorizationCode do
15
15
  end
16
16
  subject { grant.new attributes }
17
17
  its(:redirect_uri) { should == redirect_uri }
18
- its(:to_hash) do
18
+ its(:as_json) do
19
19
  should == {:grant_type => :authorization_code, :code => 'code', :redirect_uri => redirect_uri}
20
20
  end
21
21
  end
@@ -23,7 +23,7 @@ describe Rack::OAuth2::Client::Grant::AuthorizationCode do
23
23
  context 'otherwise' do
24
24
  subject { grant.new attributes }
25
25
  its(:redirect_uri) { should be_nil }
26
- its(:to_hash) do
26
+ its(:as_json) do
27
27
  should == {:grant_type => :authorization_code, :code => 'code', :redirect_uri => nil}
28
28
  end
29
29
  end
@@ -1,7 +1,7 @@
1
1
  require 'spec_helper.rb'
2
2
 
3
3
  describe Rack::OAuth2::Client::Grant::ClientCredentials do
4
- its(:to_hash) do
4
+ its(:as_json) do
5
5
  should == {:grant_type => :client_credentials}
6
6
  end
7
7
  end
@@ -13,7 +13,7 @@ describe Rack::OAuth2::Client::Grant::Password do
13
13
  {:username => 'username', :password => 'password'}
14
14
  end
15
15
  subject { grant.new attributes }
16
- its(:to_hash) do
16
+ its(:as_json) do
17
17
  should == {:grant_type => :password, :username => 'username', :password => 'password'}
18
18
  end
19
19
  end
@@ -8,7 +8,7 @@ describe Rack::OAuth2::Client::Grant::RefreshToken do
8
8
  {:refresh_token => 'refresh_token'}
9
9
  end
10
10
  subject { grant.new attributes }
11
- its(:to_hash) do
11
+ its(:as_json) do
12
12
  should == {:grant_type => :refresh_token, :refresh_token => 'refresh_token'}
13
13
  end
14
14
  end
@@ -4,7 +4,7 @@ describe Rack::OAuth2::Server::Authorize::Code do
4
4
  let(:request) { Rack::MockRequest.new app }
5
5
  let(:redirect_uri) { 'http://client.example.com/callback' }
6
6
  let(:authorization_code) { 'authorization_code' }
7
- let(:response) { request.get "/?response_type=code&client_id=client&redirect_uri=#{redirect_uri}" }
7
+ let(:response) { request.get "/?response_type=code&client_id=client&redirect_uri=#{redirect_uri}&state=state" }
8
8
 
9
9
  context 'when approved' do
10
10
  subject { response }
@@ -16,11 +16,11 @@ describe Rack::OAuth2::Server::Authorize::Code do
16
16
  end
17
17
  end
18
18
  its(:status) { should == 302 }
19
- its(:location) { should == "#{redirect_uri}?code=#{authorization_code}" }
19
+ its(:location) { should == "#{redirect_uri}?code=#{authorization_code}&state=state" }
20
20
 
21
21
  context 'when redirect_uri already includes query' do
22
22
  let(:redirect_uri) { 'http://client.example.com/callback?k=v' }
23
- its(:location) { should == "#{redirect_uri}&code=#{authorization_code}" }
23
+ its(:location) { should == "#{redirect_uri}&code=#{authorization_code}&state=state" }
24
24
  end
25
25
 
26
26
  context 'when redirect_uri is missing' do
@@ -51,7 +51,7 @@ describe Rack::OAuth2::Server::Authorize::Code do
51
51
  :error => :access_denied,
52
52
  :error_description => Rack::OAuth2::Server::Authorize::ErrorMethods::DEFAULT_DESCRIPTION[:access_denied]
53
53
  }
54
- response.location.should == "#{redirect_uri}?#{error_message.to_query}"
54
+ response.location.should == "#{redirect_uri}?#{error_message.to_query}&state=state"
55
55
  end
56
56
  end
57
57
  end
@@ -4,7 +4,7 @@ describe Rack::OAuth2::Server::Authorize::Token do
4
4
  let(:request) { Rack::MockRequest.new app }
5
5
  let(:redirect_uri) { 'http://client.example.com/callback' }
6
6
  let(:access_token) { 'access_token' }
7
- let(:response) { request.get("/?response_type=token&client_id=client&redirect_uri=#{redirect_uri}") }
7
+ let(:response) { request.get("/?response_type=token&client_id=client&redirect_uri=#{redirect_uri}&state=state") }
8
8
 
9
9
  context "when approved" do
10
10
  subject { response }
@@ -17,7 +17,7 @@ describe Rack::OAuth2::Server::Authorize::Token do
17
17
  end
18
18
  end
19
19
  its(:status) { should == 302 }
20
- its(:location) { should == "#{redirect_uri}#access_token=#{access_token}&token_type=bearer" }
20
+ its(:location) { should == "#{redirect_uri}#access_token=#{access_token}&state=state&token_type=bearer" }
21
21
 
22
22
  context 'when refresh_token is given' do
23
23
  let :bearer_token do
@@ -26,7 +26,7 @@ describe Rack::OAuth2::Server::Authorize::Token do
26
26
  :refresh_token => 'refresh'
27
27
  )
28
28
  end
29
- its(:location) { should == "#{redirect_uri}#access_token=#{access_token}&token_type=bearer" }
29
+ its(:location) { should == "#{redirect_uri}#access_token=#{access_token}&state=state&token_type=bearer" }
30
30
  end
31
31
 
32
32
  context 'when redirect_uri is missing' do
@@ -67,7 +67,7 @@ describe Rack::OAuth2::Server::Authorize::Token do
67
67
  :error => :access_denied,
68
68
  :error_description => Rack::OAuth2::Server::Authorize::ErrorMethods::DEFAULT_DESCRIPTION[:access_denied]
69
69
  }
70
- response.location.should == "#{redirect_uri}##{error_message.to_query}"
70
+ response.location.should == "#{redirect_uri}##{error_message.to_query}&state=state"
71
71
  end
72
72
  end
73
73
  end
@@ -117,7 +117,7 @@ describe Rack::OAuth2::Server::Authorize do
117
117
  end
118
118
  end
119
119
 
120
- describe 'extensions' do
120
+ describe 'extensibility' do
121
121
  before do
122
122
  require 'rack/oauth2/server/authorize/extension/code_and_token'
123
123
  end
@@ -100,4 +100,35 @@ describe Rack::OAuth2::Server::Token do
100
100
  end
101
101
  end
102
102
  end
103
+
104
+ describe 'extensibility' do
105
+ before do
106
+ require 'rack/oauth2/server/token/extension/jwt'
107
+ end
108
+
109
+ subject { app }
110
+ let(:env) do
111
+ Rack::MockRequest.env_for(
112
+ '/token',
113
+ :params => params
114
+ )
115
+ end
116
+ let(:request) { Rack::OAuth2::Server::Token::Request.new env }
117
+ its(:extensions) { should == [Rack::OAuth2::Server::Token::Extension::JWT] }
118
+
119
+ describe 'JWT assertion' do
120
+ let(:params) do
121
+ {
122
+ :grant_type => 'urn:ietf:params:oauth:grant-type:jwt-bearer',
123
+ :assertion => 'header.payload.signature'
124
+ }
125
+ end
126
+
127
+ it do
128
+ app.send(
129
+ :grant_type_for, request
130
+ ).should == Rack::OAuth2::Server::Token::Extension::JWT
131
+ end
132
+ end
133
+ end
103
134
  end
data/spec/spec_helper.rb CHANGED
@@ -1,3 +1,10 @@
1
+ if RUBY_VERSION >= '1.9'
2
+ require 'cover_me'
3
+ at_exit do
4
+ CoverMe.complete!
5
+ end
6
+ end
7
+
1
8
  require 'rspec'
2
9
  require 'rack/oauth2'
3
10
  require 'helpers/time'
metadata CHANGED
@@ -1,137 +1,135 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: rack-oauth2
3
- version: !ruby/object:Gem::Version
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.12.0
4
5
  prerelease:
5
- version: 0.11.0
6
6
  platform: ruby
7
- authors:
7
+ authors:
8
8
  - nov matake
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
-
13
- date: 2011-09-16 00:00:00 Z
14
- dependencies:
15
- - !ruby/object:Gem::Dependency
12
+ date: 2012-02-01 00:00:00.000000000Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
16
15
  name: rack
17
- prerelease: false
18
- requirement: &id001 !ruby/object:Gem::Requirement
16
+ requirement: &70151141124580 !ruby/object:Gem::Requirement
19
17
  none: false
20
- requirements:
21
- - - ">="
22
- - !ruby/object:Gem::Version
23
- version: "1.1"
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '1.1'
24
22
  type: :runtime
25
- version_requirements: *id001
26
- - !ruby/object:Gem::Dependency
27
- name: json
28
23
  prerelease: false
29
- requirement: &id002 !ruby/object:Gem::Requirement
24
+ version_requirements: *70151141124580
25
+ - !ruby/object:Gem::Dependency
26
+ name: json
27
+ requirement: &70151141124100 !ruby/object:Gem::Requirement
30
28
  none: false
31
- requirements:
32
- - - ">="
33
- - !ruby/object:Gem::Version
29
+ requirements:
30
+ - - ! '>='
31
+ - !ruby/object:Gem::Version
34
32
  version: 1.4.3
35
33
  type: :runtime
36
- version_requirements: *id002
37
- - !ruby/object:Gem::Dependency
38
- name: httpclient
39
34
  prerelease: false
40
- requirement: &id003 !ruby/object:Gem::Requirement
35
+ version_requirements: *70151141124100
36
+ - !ruby/object:Gem::Dependency
37
+ name: httpclient
38
+ requirement: &70151141123620 !ruby/object:Gem::Requirement
41
39
  none: false
42
- requirements:
43
- - - ">="
44
- - !ruby/object:Gem::Version
40
+ requirements:
41
+ - - ! '>='
42
+ - !ruby/object:Gem::Version
45
43
  version: 2.2.0.2
46
44
  type: :runtime
47
- version_requirements: *id003
48
- - !ruby/object:Gem::Dependency
49
- name: activesupport
50
45
  prerelease: false
51
- requirement: &id004 !ruby/object:Gem::Requirement
46
+ version_requirements: *70151141123620
47
+ - !ruby/object:Gem::Dependency
48
+ name: activesupport
49
+ requirement: &70151141123100 !ruby/object:Gem::Requirement
52
50
  none: false
53
- requirements:
54
- - - ">="
55
- - !ruby/object:Gem::Version
56
- version: "2.3"
51
+ requirements:
52
+ - - ! '>='
53
+ - !ruby/object:Gem::Version
54
+ version: '2.3'
57
55
  type: :runtime
58
- version_requirements: *id004
59
- - !ruby/object:Gem::Dependency
60
- name: i18n
61
56
  prerelease: false
62
- requirement: &id005 !ruby/object:Gem::Requirement
57
+ version_requirements: *70151141123100
58
+ - !ruby/object:Gem::Dependency
59
+ name: i18n
60
+ requirement: &70151141122640 !ruby/object:Gem::Requirement
63
61
  none: false
64
- requirements:
65
- - - ">="
66
- - !ruby/object:Gem::Version
67
- version: "0"
62
+ requirements:
63
+ - - ! '>='
64
+ - !ruby/object:Gem::Version
65
+ version: '0'
68
66
  type: :runtime
69
- version_requirements: *id005
70
- - !ruby/object:Gem::Dependency
71
- name: attr_required
72
67
  prerelease: false
73
- requirement: &id006 !ruby/object:Gem::Requirement
68
+ version_requirements: *70151141122640
69
+ - !ruby/object:Gem::Dependency
70
+ name: attr_required
71
+ requirement: &70151141121940 !ruby/object:Gem::Requirement
74
72
  none: false
75
- requirements:
76
- - - ">="
77
- - !ruby/object:Gem::Version
73
+ requirements:
74
+ - - ! '>='
75
+ - !ruby/object:Gem::Version
78
76
  version: 0.0.3
79
77
  type: :runtime
80
- version_requirements: *id006
81
- - !ruby/object:Gem::Dependency
82
- name: rake
83
78
  prerelease: false
84
- requirement: &id007 !ruby/object:Gem::Requirement
79
+ version_requirements: *70151141121940
80
+ - !ruby/object:Gem::Dependency
81
+ name: rake
82
+ requirement: &70151141120640 !ruby/object:Gem::Requirement
85
83
  none: false
86
- requirements:
87
- - - ">="
88
- - !ruby/object:Gem::Version
89
- version: "0.8"
84
+ requirements:
85
+ - - ! '>='
86
+ - !ruby/object:Gem::Version
87
+ version: '0.8'
90
88
  type: :development
91
- version_requirements: *id007
92
- - !ruby/object:Gem::Dependency
93
- name: rcov
94
89
  prerelease: false
95
- requirement: &id008 !ruby/object:Gem::Requirement
90
+ version_requirements: *70151141120640
91
+ - !ruby/object:Gem::Dependency
92
+ name: cover_me
93
+ requirement: &70151141120120 !ruby/object:Gem::Requirement
96
94
  none: false
97
- requirements:
98
- - - ">="
99
- - !ruby/object:Gem::Version
100
- version: "0.9"
95
+ requirements:
96
+ - - ! '>='
97
+ - !ruby/object:Gem::Version
98
+ version: 1.2.0
101
99
  type: :development
102
- version_requirements: *id008
103
- - !ruby/object:Gem::Dependency
104
- name: rspec
105
100
  prerelease: false
106
- requirement: &id009 !ruby/object:Gem::Requirement
101
+ version_requirements: *70151141120120
102
+ - !ruby/object:Gem::Dependency
103
+ name: rspec
104
+ requirement: &70151141113400 !ruby/object:Gem::Requirement
107
105
  none: false
108
- requirements:
109
- - - ">="
110
- - !ruby/object:Gem::Version
111
- version: "2"
106
+ requirements:
107
+ - - ! '>='
108
+ - !ruby/object:Gem::Version
109
+ version: '2'
112
110
  type: :development
113
- version_requirements: *id009
114
- - !ruby/object:Gem::Dependency
115
- name: webmock
116
111
  prerelease: false
117
- requirement: &id010 !ruby/object:Gem::Requirement
112
+ version_requirements: *70151141113400
113
+ - !ruby/object:Gem::Dependency
114
+ name: webmock
115
+ requirement: &70151141112480 !ruby/object:Gem::Requirement
118
116
  none: false
119
- requirements:
120
- - - ">="
121
- - !ruby/object:Gem::Version
117
+ requirements:
118
+ - - ! '>='
119
+ - !ruby/object:Gem::Version
122
120
  version: 1.6.2
123
121
  type: :development
124
- version_requirements: *id010
125
- description: OAuth 2.0 Server & Client Library. Both Bearer and MAC token type are supported.
122
+ prerelease: false
123
+ version_requirements: *70151141112480
124
+ description: OAuth 2.0 Server & Client Library. Both Bearer and MAC token type are
125
+ supported.
126
126
  email: nov@matake.jp
127
127
  executables: []
128
-
129
128
  extensions: []
130
-
131
- extra_rdoc_files:
129
+ extra_rdoc_files:
132
130
  - LICENSE
133
131
  - README.rdoc
134
- files:
132
+ files:
135
133
  - .document
136
134
  - .gitignore
137
135
  - .rspec
@@ -182,6 +180,8 @@ files:
182
180
  - lib/rack/oauth2/server/token/authorization_code.rb
183
181
  - lib/rack/oauth2/server/token/client_credentials.rb
184
182
  - lib/rack/oauth2/server/token/error.rb
183
+ - lib/rack/oauth2/server/token/extension.rb
184
+ - lib/rack/oauth2/server/token/extension/jwt.rb
185
185
  - lib/rack/oauth2/server/token/password.rb
186
186
  - lib/rack/oauth2/server/token/refresh_token.rb
187
187
  - lib/rack/oauth2/util.rb
@@ -235,32 +235,30 @@ files:
235
235
  - spec/spec_helper.rb
236
236
  homepage: http://github.com/nov/rack-oauth2
237
237
  licenses: []
238
-
239
238
  post_install_message:
240
- rdoc_options:
239
+ rdoc_options:
241
240
  - --charset=UTF-8
242
- require_paths:
241
+ require_paths:
243
242
  - lib
244
- required_ruby_version: !ruby/object:Gem::Requirement
243
+ required_ruby_version: !ruby/object:Gem::Requirement
245
244
  none: false
246
- requirements:
247
- - - ">="
248
- - !ruby/object:Gem::Version
249
- version: "0"
250
- required_rubygems_version: !ruby/object:Gem::Requirement
245
+ requirements:
246
+ - - ! '>='
247
+ - !ruby/object:Gem::Version
248
+ version: '0'
249
+ required_rubygems_version: !ruby/object:Gem::Requirement
251
250
  none: false
252
- requirements:
253
- - - ">="
254
- - !ruby/object:Gem::Version
251
+ requirements:
252
+ - - ! '>='
253
+ - !ruby/object:Gem::Version
255
254
  version: 1.3.6
256
255
  requirements: []
257
-
258
256
  rubyforge_project:
259
- rubygems_version: 1.8.10
257
+ rubygems_version: 1.8.12
260
258
  signing_key:
261
259
  specification_version: 3
262
260
  summary: OAuth 2.0 Server & Client Library - Both Bearer and MAC token type are supported
263
- test_files:
261
+ test_files:
264
262
  - spec/helpers/time.rb
265
263
  - spec/helpers/webmock_helper.rb
266
264
  - spec/mock_response/errors/invalid_request.json