doorkeeper 0.5.0 → 0.6.0.rc1
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of doorkeeper might be problematic. Click here for more details.
- data/.travis.yml +15 -6
- data/CHANGELOG.md +19 -1
- data/Gemfile +23 -7
- data/README.md +62 -27
- data/app/controllers/doorkeeper/application_controller.rb +1 -1
- data/app/controllers/doorkeeper/authorizations_controller.rb +45 -35
- data/app/controllers/doorkeeper/token_info_controller.rb +10 -9
- data/app/controllers/doorkeeper/tokens_controller.rb +13 -32
- data/app/validators/redirect_uri_validator.rb +11 -0
- data/app/views/doorkeeper/applications/_form.html.erb +6 -1
- data/app/views/doorkeeper/applications/edit.html.erb +2 -2
- data/app/views/doorkeeper/applications/new.html.erb +2 -2
- data/app/views/doorkeeper/applications/show.html.erb +4 -1
- data/app/views/doorkeeper/authorizations/error.html.erb +1 -1
- data/app/views/doorkeeper/authorizations/new.html.erb +17 -17
- data/app/views/doorkeeper/authorizations/show.html.erb +4 -0
- data/config/locales/en.yml +10 -0
- data/doorkeeper.gemspec +3 -3
- data/lib/doorkeeper.rb +11 -2
- data/lib/doorkeeper/config.rb +6 -1
- data/lib/doorkeeper/errors.rb +15 -0
- data/lib/doorkeeper/helpers/controller.rb +24 -0
- data/lib/doorkeeper/models/access_grant.rb +1 -1
- data/lib/doorkeeper/models/access_token.rb +2 -3
- data/lib/doorkeeper/models/active_record/access_token.rb +6 -0
- data/lib/doorkeeper/models/mongo_mapper/access_grant.rb +28 -0
- data/lib/doorkeeper/models/mongo_mapper/access_token.rb +51 -0
- data/lib/doorkeeper/models/mongo_mapper/application.rb +30 -0
- data/lib/doorkeeper/models/mongo_mapper/revocable.rb +15 -0
- data/lib/doorkeeper/models/{mongoid → mongoid2}/access_grant.rb +1 -1
- data/lib/doorkeeper/models/{mongoid → mongoid2}/access_token.rb +6 -0
- data/lib/doorkeeper/models/{mongoid → mongoid2}/application.rb +2 -2
- data/lib/doorkeeper/models/mongoid3/access_grant.rb +22 -0
- data/lib/doorkeeper/models/mongoid3/access_token.rb +41 -0
- data/lib/doorkeeper/models/mongoid3/application.rb +22 -0
- data/lib/doorkeeper/oauth/authorization/code.rb +9 -17
- data/lib/doorkeeper/oauth/authorization/token.rb +8 -18
- data/lib/doorkeeper/oauth/authorization/uri_builder.rb +2 -0
- data/lib/doorkeeper/oauth/authorization_code_request.rb +82 -0
- data/lib/doorkeeper/oauth/client_credentials_request.rb +2 -4
- data/lib/doorkeeper/oauth/code_request.rb +28 -0
- data/lib/doorkeeper/oauth/code_response.rb +37 -0
- data/lib/doorkeeper/oauth/error_response.rb +23 -9
- data/lib/doorkeeper/oauth/helpers/uri_checker.rb +4 -0
- data/lib/doorkeeper/oauth/password_access_token_request.rb +21 -65
- data/lib/doorkeeper/oauth/pre_authorization.rb +62 -0
- data/lib/doorkeeper/oauth/refresh_token_request.rb +58 -0
- data/lib/doorkeeper/oauth/token_request.rb +28 -0
- data/lib/doorkeeper/oauth/token_response.rb +29 -0
- data/lib/doorkeeper/rails/routes.rb +4 -3
- data/lib/doorkeeper/request.rb +33 -0
- data/lib/doorkeeper/request/authorization_code.rb +23 -0
- data/lib/doorkeeper/request/client_credentials.rb +23 -0
- data/lib/doorkeeper/request/code.rb +24 -0
- data/lib/doorkeeper/request/password.rb +23 -0
- data/lib/doorkeeper/request/refresh_token.rb +23 -0
- data/lib/doorkeeper/request/token.rb +24 -0
- data/lib/doorkeeper/server.rb +54 -0
- data/lib/doorkeeper/validations.rb +1 -0
- data/lib/doorkeeper/version.rb +1 -1
- data/lib/generators/doorkeeper/mongo_mapper/indexes_generator.rb +12 -0
- data/lib/generators/doorkeeper/templates/README +15 -1
- data/lib/generators/doorkeeper/templates/indexes.rb +3 -0
- data/lib/generators/doorkeeper/templates/initializer.rb +8 -1
- data/script/run_all +9 -9
- data/spec/controllers/authorizations_controller_spec.rb +8 -19
- data/spec/controllers/token_info_controller_spec.rb +9 -9
- data/spec/controllers/tokens_controller_spec.rb +2 -1
- data/spec/dummy/app/models/user.rb +11 -4
- data/spec/dummy/config/application.rb +8 -1
- data/spec/dummy/config/boot.rb +1 -1
- data/spec/dummy/config/initializers/doorkeeper.rb +9 -1
- data/spec/dummy/config/mongo.yml +11 -0
- data/spec/dummy/config/{mongoid.yml → mongoid2.yml} +3 -1
- data/spec/dummy/config/mongoid3.yml +18 -0
- data/spec/generators/install_generator_spec.rb +1 -0
- data/spec/lib/oauth/authorization_code_request_spec.rb +80 -0
- data/spec/lib/oauth/client_credentials_request_spec.rb +1 -3
- data/spec/lib/oauth/code_request_spec.rb +44 -0
- data/spec/lib/oauth/error_response_spec.rb +7 -7
- data/spec/lib/oauth/password_access_token_request_spec.rb +30 -143
- data/spec/lib/oauth/pre_authorization_spec.rb +80 -0
- data/spec/lib/oauth/refresh_token_request_spec.rb +56 -0
- data/spec/lib/oauth/token_request_spec.rb +46 -0
- data/spec/lib/oauth/{client_credentials/response_spec.rb → token_response_spec.rb} +13 -19
- data/spec/lib/server_spec.rb +24 -0
- data/spec/requests/endpoints/authorization_spec.rb +11 -27
- data/spec/requests/endpoints/token_spec.rb +17 -0
- data/spec/requests/flows/authorization_code_errors_spec.rb +0 -45
- data/spec/requests/flows/authorization_code_spec.rb +12 -2
- data/spec/requests/flows/client_credentials_spec.rb +1 -1
- data/spec/requests/flows/password_spec.rb +1 -0
- data/spec/requests/flows/refresh_token_spec.rb +6 -4
- data/spec/spec_helper_integration.rb +4 -2
- data/spec/support/orm/mongo_mapper.rb +26 -0
- data/spec/support/orm/mongoid.rb +7 -2
- data/spec/validators/redirect_uri_validator_spec.rb +11 -4
- metadata +67 -42
- data/gemfiles/gemfile.rails-3.1.x +0 -17
- data/gemfiles/gemfile.rails-3.2.x +0 -17
- data/lib/doorkeeper/oauth/access_token_request.rb +0 -139
- data/lib/doorkeeper/oauth/authorization_request.rb +0 -114
- data/lib/doorkeeper/oauth/client_credentials/response.rb +0 -42
- data/spec/lib/oauth/access_token_request_spec.rb +0 -246
- data/spec/lib/oauth/authorization_request_spec.rb +0 -287
data/spec/support/orm/mongoid.rb
CHANGED
@@ -2,7 +2,7 @@ DatabaseCleaner[:mongoid].strategy = :truncation
|
|
2
2
|
DatabaseCleaner[:mongoid].clean_with :truncation
|
3
3
|
|
4
4
|
RSpec.configure do |config|
|
5
|
-
config.before
|
5
|
+
config.before do
|
6
6
|
Doorkeeper::Application.create_indexes
|
7
7
|
Doorkeeper::AccessGrant.create_indexes
|
8
8
|
Doorkeeper::AccessToken.create_indexes
|
@@ -13,7 +13,12 @@ module Doorkeeper
|
|
13
13
|
class PlaceholderApplicationOwner
|
14
14
|
include Mongoid::Document
|
15
15
|
|
16
|
-
|
16
|
+
if ::Mongoid::VERSION >= "3"
|
17
|
+
self.store_in :collection => :placeholder_application_owners
|
18
|
+
else
|
19
|
+
self.store_in :placeholder_application_owners
|
20
|
+
end
|
21
|
+
|
17
22
|
has_many :applications
|
18
23
|
|
19
24
|
end
|
@@ -1,7 +1,3 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
require 'active_model'
|
3
|
-
require 'validators/redirect_uri_validator'
|
4
|
-
|
5
1
|
require 'spec_helper_integration'
|
6
2
|
|
7
3
|
describe RedirectUriValidator do
|
@@ -14,6 +10,17 @@ describe RedirectUriValidator do
|
|
14
10
|
subject.should be_valid
|
15
11
|
end
|
16
12
|
|
13
|
+
it 'accepts test redirect uri' do
|
14
|
+
subject.redirect_uri = 'urn:ietf:wg:oauth:2.0:oob'
|
15
|
+
subject.should be_valid
|
16
|
+
end
|
17
|
+
|
18
|
+
it 'rejects if test uri is disabled' do
|
19
|
+
RedirectUriValidator.stub :test_redirect_uri => nil
|
20
|
+
subject.redirect_uri = "urn:some:test"
|
21
|
+
subject.should_not be_valid
|
22
|
+
end
|
23
|
+
|
17
24
|
it 'is invalid when the uri is not a uri' do
|
18
25
|
subject.redirect_uri = ']'
|
19
26
|
subject.should_not be_valid
|
metadata
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: doorkeeper
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
5
|
-
prerelease:
|
4
|
+
version: 0.6.0.rc1
|
5
|
+
prerelease: 6
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Felipe Elias Philipp
|
@@ -10,11 +10,11 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2012-
|
13
|
+
date: 2012-11-03 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: railties
|
17
|
-
requirement: &
|
17
|
+
requirement: &70365762857000 !ruby/object:Gem::Requirement
|
18
18
|
none: false
|
19
19
|
requirements:
|
20
20
|
- - ~>
|
@@ -22,10 +22,10 @@ dependencies:
|
|
22
22
|
version: '3.1'
|
23
23
|
type: :runtime
|
24
24
|
prerelease: false
|
25
|
-
version_requirements: *
|
25
|
+
version_requirements: *70365762857000
|
26
26
|
- !ruby/object:Gem::Dependency
|
27
27
|
name: sqlite3
|
28
|
-
requirement: &
|
28
|
+
requirement: &70365762854800 !ruby/object:Gem::Requirement
|
29
29
|
none: false
|
30
30
|
requirements:
|
31
31
|
- - ~>
|
@@ -33,21 +33,21 @@ dependencies:
|
|
33
33
|
version: 1.3.5
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
|
-
version_requirements: *
|
36
|
+
version_requirements: *70365762854800
|
37
37
|
- !ruby/object:Gem::Dependency
|
38
38
|
name: rspec-rails
|
39
|
-
requirement: &
|
39
|
+
requirement: &70365762875900 !ruby/object:Gem::Requirement
|
40
40
|
none: false
|
41
41
|
requirements:
|
42
42
|
- - ~>
|
43
43
|
- !ruby/object:Gem::Version
|
44
|
-
version: 2.11.
|
44
|
+
version: 2.11.4
|
45
45
|
type: :development
|
46
46
|
prerelease: false
|
47
|
-
version_requirements: *
|
47
|
+
version_requirements: *70365762875900
|
48
48
|
- !ruby/object:Gem::Dependency
|
49
49
|
name: capybara
|
50
|
-
requirement: &
|
50
|
+
requirement: &70365762873160 !ruby/object:Gem::Requirement
|
51
51
|
none: false
|
52
52
|
requirements:
|
53
53
|
- - ~>
|
@@ -55,10 +55,10 @@ dependencies:
|
|
55
55
|
version: 1.1.2
|
56
56
|
type: :development
|
57
57
|
prerelease: false
|
58
|
-
version_requirements: *
|
58
|
+
version_requirements: *70365762873160
|
59
59
|
- !ruby/object:Gem::Dependency
|
60
60
|
name: generator_spec
|
61
|
-
requirement: &
|
61
|
+
requirement: &70365762869900 !ruby/object:Gem::Requirement
|
62
62
|
none: false
|
63
63
|
requirements:
|
64
64
|
- - ~>
|
@@ -66,10 +66,10 @@ dependencies:
|
|
66
66
|
version: 0.8.5
|
67
67
|
type: :development
|
68
68
|
prerelease: false
|
69
|
-
version_requirements: *
|
69
|
+
version_requirements: *70365762869900
|
70
70
|
- !ruby/object:Gem::Dependency
|
71
71
|
name: factory_girl
|
72
|
-
requirement: &
|
72
|
+
requirement: &70365762883120 !ruby/object:Gem::Requirement
|
73
73
|
none: false
|
74
74
|
requirements:
|
75
75
|
- - ~>
|
@@ -77,32 +77,32 @@ dependencies:
|
|
77
77
|
version: 2.6.4
|
78
78
|
type: :development
|
79
79
|
prerelease: false
|
80
|
-
version_requirements: *
|
80
|
+
version_requirements: *70365762883120
|
81
81
|
- !ruby/object:Gem::Dependency
|
82
82
|
name: timecop
|
83
|
-
requirement: &
|
83
|
+
requirement: &70365762880300 !ruby/object:Gem::Requirement
|
84
84
|
none: false
|
85
85
|
requirements:
|
86
86
|
- - ~>
|
87
87
|
- !ruby/object:Gem::Version
|
88
|
-
version: 0.
|
88
|
+
version: 0.5.2
|
89
89
|
type: :development
|
90
90
|
prerelease: false
|
91
|
-
version_requirements: *
|
91
|
+
version_requirements: *70365762880300
|
92
92
|
- !ruby/object:Gem::Dependency
|
93
93
|
name: database_cleaner
|
94
|
-
requirement: &
|
94
|
+
requirement: &70365762903440 !ruby/object:Gem::Requirement
|
95
95
|
none: false
|
96
96
|
requirements:
|
97
97
|
- - ~>
|
98
98
|
- !ruby/object:Gem::Version
|
99
|
-
version:
|
99
|
+
version: 0.9.1
|
100
100
|
type: :development
|
101
101
|
prerelease: false
|
102
|
-
version_requirements: *
|
102
|
+
version_requirements: *70365762903440
|
103
103
|
- !ruby/object:Gem::Dependency
|
104
104
|
name: bcrypt-ruby
|
105
|
-
requirement: &
|
105
|
+
requirement: &70365762898500 !ruby/object:Gem::Requirement
|
106
106
|
none: false
|
107
107
|
requirements:
|
108
108
|
- - ~>
|
@@ -110,7 +110,7 @@ dependencies:
|
|
110
110
|
version: 3.0.1
|
111
111
|
type: :development
|
112
112
|
prerelease: false
|
113
|
-
version_requirements: *
|
113
|
+
version_requirements: *70365762898500
|
114
114
|
description: Doorkeeper is an OAuth 2 provider for Rails.
|
115
115
|
email:
|
116
116
|
- felipe@applicake.com
|
@@ -144,17 +144,17 @@ files:
|
|
144
144
|
- app/views/doorkeeper/applications/show.html.erb
|
145
145
|
- app/views/doorkeeper/authorizations/error.html.erb
|
146
146
|
- app/views/doorkeeper/authorizations/new.html.erb
|
147
|
+
- app/views/doorkeeper/authorizations/show.html.erb
|
147
148
|
- app/views/doorkeeper/authorized_applications/index.html.erb
|
148
149
|
- app/views/layouts/doorkeeper/application.html.erb
|
149
150
|
- config/initializers/form_errors.rb
|
150
151
|
- config/locales/en.yml
|
151
152
|
- doorkeeper.gemspec
|
152
|
-
- gemfiles/gemfile.rails-3.1.x
|
153
|
-
- gemfiles/gemfile.rails-3.2.x
|
154
153
|
- lib/doorkeeper.rb
|
155
154
|
- lib/doorkeeper/config.rb
|
156
155
|
- lib/doorkeeper/doorkeeper_for.rb
|
157
156
|
- lib/doorkeeper/engine.rb
|
157
|
+
- lib/doorkeeper/errors.rb
|
158
158
|
- lib/doorkeeper/helpers/controller.rb
|
159
159
|
- lib/doorkeeper/helpers/filter.rb
|
160
160
|
- lib/doorkeeper/models/access_grant.rb
|
@@ -165,46 +165,67 @@ files:
|
|
165
165
|
- lib/doorkeeper/models/active_record/application.rb
|
166
166
|
- lib/doorkeeper/models/application.rb
|
167
167
|
- lib/doorkeeper/models/expirable.rb
|
168
|
-
- lib/doorkeeper/models/
|
169
|
-
- lib/doorkeeper/models/
|
170
|
-
- lib/doorkeeper/models/
|
168
|
+
- lib/doorkeeper/models/mongo_mapper/access_grant.rb
|
169
|
+
- lib/doorkeeper/models/mongo_mapper/access_token.rb
|
170
|
+
- lib/doorkeeper/models/mongo_mapper/application.rb
|
171
|
+
- lib/doorkeeper/models/mongo_mapper/revocable.rb
|
171
172
|
- lib/doorkeeper/models/mongoid/revocable.rb
|
172
173
|
- lib/doorkeeper/models/mongoid/scopes.rb
|
174
|
+
- lib/doorkeeper/models/mongoid2/access_grant.rb
|
175
|
+
- lib/doorkeeper/models/mongoid2/access_token.rb
|
176
|
+
- lib/doorkeeper/models/mongoid2/application.rb
|
177
|
+
- lib/doorkeeper/models/mongoid3/access_grant.rb
|
178
|
+
- lib/doorkeeper/models/mongoid3/access_token.rb
|
179
|
+
- lib/doorkeeper/models/mongoid3/application.rb
|
173
180
|
- lib/doorkeeper/models/ownership.rb
|
174
181
|
- lib/doorkeeper/models/revocable.rb
|
175
182
|
- lib/doorkeeper/models/scopes.rb
|
176
|
-
- lib/doorkeeper/oauth/access_token_request.rb
|
177
183
|
- lib/doorkeeper/oauth/authorization.rb
|
178
184
|
- lib/doorkeeper/oauth/authorization/code.rb
|
179
185
|
- lib/doorkeeper/oauth/authorization/token.rb
|
180
186
|
- lib/doorkeeper/oauth/authorization/uri_builder.rb
|
181
|
-
- lib/doorkeeper/oauth/
|
187
|
+
- lib/doorkeeper/oauth/authorization_code_request.rb
|
182
188
|
- lib/doorkeeper/oauth/client.rb
|
183
189
|
- lib/doorkeeper/oauth/client/credentials.rb
|
184
190
|
- lib/doorkeeper/oauth/client/methods.rb
|
185
191
|
- lib/doorkeeper/oauth/client_credentials/creator.rb
|
186
192
|
- lib/doorkeeper/oauth/client_credentials/issuer.rb
|
187
|
-
- lib/doorkeeper/oauth/client_credentials/response.rb
|
188
193
|
- lib/doorkeeper/oauth/client_credentials/validation.rb
|
189
194
|
- lib/doorkeeper/oauth/client_credentials_request.rb
|
195
|
+
- lib/doorkeeper/oauth/code_request.rb
|
196
|
+
- lib/doorkeeper/oauth/code_response.rb
|
190
197
|
- lib/doorkeeper/oauth/error.rb
|
191
198
|
- lib/doorkeeper/oauth/error_response.rb
|
192
199
|
- lib/doorkeeper/oauth/helpers/scope_checker.rb
|
193
200
|
- lib/doorkeeper/oauth/helpers/unique_token.rb
|
194
201
|
- lib/doorkeeper/oauth/helpers/uri_checker.rb
|
195
202
|
- lib/doorkeeper/oauth/password_access_token_request.rb
|
203
|
+
- lib/doorkeeper/oauth/pre_authorization.rb
|
204
|
+
- lib/doorkeeper/oauth/refresh_token_request.rb
|
196
205
|
- lib/doorkeeper/oauth/scopes.rb
|
197
206
|
- lib/doorkeeper/oauth/token.rb
|
207
|
+
- lib/doorkeeper/oauth/token_request.rb
|
208
|
+
- lib/doorkeeper/oauth/token_response.rb
|
198
209
|
- lib/doorkeeper/rails/routes.rb
|
199
210
|
- lib/doorkeeper/rails/routes/mapper.rb
|
200
211
|
- lib/doorkeeper/rails/routes/mapping.rb
|
212
|
+
- lib/doorkeeper/request.rb
|
213
|
+
- lib/doorkeeper/request/authorization_code.rb
|
214
|
+
- lib/doorkeeper/request/client_credentials.rb
|
215
|
+
- lib/doorkeeper/request/code.rb
|
216
|
+
- lib/doorkeeper/request/password.rb
|
217
|
+
- lib/doorkeeper/request/refresh_token.rb
|
218
|
+
- lib/doorkeeper/request/token.rb
|
219
|
+
- lib/doorkeeper/server.rb
|
201
220
|
- lib/doorkeeper/validations.rb
|
202
221
|
- lib/doorkeeper/version.rb
|
203
222
|
- lib/generators/doorkeeper/application_owner_generator.rb
|
204
223
|
- lib/generators/doorkeeper/install_generator.rb
|
205
224
|
- lib/generators/doorkeeper/migration_generator.rb
|
225
|
+
- lib/generators/doorkeeper/mongo_mapper/indexes_generator.rb
|
206
226
|
- lib/generators/doorkeeper/templates/README
|
207
227
|
- lib/generators/doorkeeper/templates/add_owner_to_application_migration.rb
|
228
|
+
- lib/generators/doorkeeper/templates/indexes.rb
|
208
229
|
- lib/generators/doorkeeper/templates/initializer.rb
|
209
230
|
- lib/generators/doorkeeper/templates/migration.rb
|
210
231
|
- lib/generators/doorkeeper/views_generator.rb
|
@@ -242,7 +263,9 @@ files:
|
|
242
263
|
- spec/dummy/config/initializers/session_store.rb
|
243
264
|
- spec/dummy/config/initializers/wrap_parameters.rb
|
244
265
|
- spec/dummy/config/locales/doorkeeper.en.yml
|
245
|
-
- spec/dummy/config/
|
266
|
+
- spec/dummy/config/mongo.yml
|
267
|
+
- spec/dummy/config/mongoid2.yml
|
268
|
+
- spec/dummy/config/mongoid3.yml
|
246
269
|
- spec/dummy/config/routes.rb
|
247
270
|
- spec/dummy/db/migrate/20111122132257_create_users.rb
|
248
271
|
- spec/dummy/db/migrate/20120312140401_add_password_to_users.rb
|
@@ -265,26 +288,30 @@ files:
|
|
265
288
|
- spec/lib/models/expirable_spec.rb
|
266
289
|
- spec/lib/models/revocable_spec.rb
|
267
290
|
- spec/lib/models/scopes_spec.rb
|
268
|
-
- spec/lib/oauth/access_token_request_spec.rb
|
269
291
|
- spec/lib/oauth/authorization/uri_builder_spec.rb
|
270
|
-
- spec/lib/oauth/
|
292
|
+
- spec/lib/oauth/authorization_code_request_spec.rb
|
271
293
|
- spec/lib/oauth/client/credentials_spec.rb
|
272
294
|
- spec/lib/oauth/client/methods_spec.rb
|
273
295
|
- spec/lib/oauth/client_credentials/creator_spec.rb
|
274
296
|
- spec/lib/oauth/client_credentials/issuer_spec.rb
|
275
|
-
- spec/lib/oauth/client_credentials/response_spec.rb
|
276
297
|
- spec/lib/oauth/client_credentials/validation_spec.rb
|
277
298
|
- spec/lib/oauth/client_credentials_integration_spec.rb
|
278
299
|
- spec/lib/oauth/client_credentials_request_spec.rb
|
279
300
|
- spec/lib/oauth/client_spec.rb
|
301
|
+
- spec/lib/oauth/code_request_spec.rb
|
280
302
|
- spec/lib/oauth/error_response_spec.rb
|
281
303
|
- spec/lib/oauth/error_spec.rb
|
282
304
|
- spec/lib/oauth/helpers/scope_checker_spec.rb
|
283
305
|
- spec/lib/oauth/helpers/unique_token_spec.rb
|
284
306
|
- spec/lib/oauth/helpers/uri_checker_spec.rb
|
285
307
|
- spec/lib/oauth/password_access_token_request_spec.rb
|
308
|
+
- spec/lib/oauth/pre_authorization_spec.rb
|
309
|
+
- spec/lib/oauth/refresh_token_request_spec.rb
|
286
310
|
- spec/lib/oauth/scopes_spec.rb
|
311
|
+
- spec/lib/oauth/token_request_spec.rb
|
312
|
+
- spec/lib/oauth/token_response_spec.rb
|
287
313
|
- spec/lib/oauth/token_spec.rb
|
314
|
+
- spec/lib/server_spec.rb
|
288
315
|
- spec/models/doorkeeper/access_grant_spec.rb
|
289
316
|
- spec/models/doorkeeper/access_token_spec.rb
|
290
317
|
- spec/models/doorkeeper/application_spec.rb
|
@@ -314,6 +341,7 @@ files:
|
|
314
341
|
- spec/support/helpers/request_spec_helper.rb
|
315
342
|
- spec/support/helpers/url_helper.rb
|
316
343
|
- spec/support/orm/active_record.rb
|
344
|
+
- spec/support/orm/mongo_mapper.rb
|
317
345
|
- spec/support/orm/mongoid.rb
|
318
346
|
- spec/support/shared/controllers_shared_context.rb
|
319
347
|
- spec/support/shared/models_shared_examples.rb
|
@@ -332,16 +360,13 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
332
360
|
version: '0'
|
333
361
|
segments:
|
334
362
|
- 0
|
335
|
-
hash: -
|
363
|
+
hash: -115319410489160264
|
336
364
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
337
365
|
none: false
|
338
366
|
requirements:
|
339
|
-
- - ! '
|
367
|
+
- - ! '>'
|
340
368
|
- !ruby/object:Gem::Version
|
341
|
-
version:
|
342
|
-
segments:
|
343
|
-
- 0
|
344
|
-
hash: -1887190500184471372
|
369
|
+
version: 1.3.1
|
345
370
|
requirements: []
|
346
371
|
rubyforge_project:
|
347
372
|
rubygems_version: 1.8.12
|
@@ -1,17 +0,0 @@
|
|
1
|
-
source 'http://rubygems.org'
|
2
|
-
|
3
|
-
gem 'rails', '~> 3.1.0'
|
4
|
-
gem 'jquery-rails'
|
5
|
-
|
6
|
-
group :mongoid do
|
7
|
-
gem 'mongoid', '~> 2.4'
|
8
|
-
gem 'bson_ext', '~> 1.6.0'
|
9
|
-
end
|
10
|
-
|
11
|
-
group :active_record do
|
12
|
-
gem 'activerecord', '~> 3.1'
|
13
|
-
end
|
14
|
-
|
15
|
-
gem 'doorkeeper', :path => '../'
|
16
|
-
|
17
|
-
gemspec :path => '../'
|
@@ -1,17 +0,0 @@
|
|
1
|
-
source 'http://rubygems.org'
|
2
|
-
|
3
|
-
gem 'rails', '~> 3.2.0'
|
4
|
-
gem 'jquery-rails'
|
5
|
-
|
6
|
-
group :mongoid do
|
7
|
-
gem 'mongoid', '~> 2.4'
|
8
|
-
gem 'bson_ext', '~> 1.6.0'
|
9
|
-
end
|
10
|
-
|
11
|
-
group :active_record do
|
12
|
-
gem 'activerecord', '~> 3.1'
|
13
|
-
end
|
14
|
-
|
15
|
-
gem 'doorkeeper', :path => '../'
|
16
|
-
|
17
|
-
gemspec :path => '../'
|
@@ -1,139 +0,0 @@
|
|
1
|
-
module Doorkeeper::OAuth
|
2
|
-
class AccessTokenRequest
|
3
|
-
include Doorkeeper::Validations
|
4
|
-
|
5
|
-
ATTRIBUTES = [
|
6
|
-
:grant_type,
|
7
|
-
:code,
|
8
|
-
:redirect_uri,
|
9
|
-
:refresh_token
|
10
|
-
]
|
11
|
-
|
12
|
-
validate :attributes, :error => :invalid_request
|
13
|
-
validate :grant_type, :error => :unsupported_grant_type
|
14
|
-
validate :client, :error => :invalid_client
|
15
|
-
validate :grant, :error => :invalid_grant
|
16
|
-
validate :redirect_uri, :error => :invalid_grant
|
17
|
-
|
18
|
-
attr_accessor *ATTRIBUTES
|
19
|
-
attr_accessor :client
|
20
|
-
|
21
|
-
def initialize(client, attributes = {})
|
22
|
-
ATTRIBUTES.each { |attr| instance_variable_set("@#{attr}", attributes[attr]) }
|
23
|
-
@client = client
|
24
|
-
validate
|
25
|
-
end
|
26
|
-
|
27
|
-
def authorize
|
28
|
-
if valid?
|
29
|
-
revoke_base_token
|
30
|
-
find_or_create_access_token
|
31
|
-
end
|
32
|
-
end
|
33
|
-
|
34
|
-
def authorization
|
35
|
-
auth = {
|
36
|
-
'access_token' => access_token.token,
|
37
|
-
'token_type' => access_token.token_type,
|
38
|
-
'expires_in' => access_token.expires_in,
|
39
|
-
}
|
40
|
-
auth.merge!({'refresh_token' => access_token.refresh_token}) if refresh_token_enabled?
|
41
|
-
auth
|
42
|
-
end
|
43
|
-
|
44
|
-
def valid?
|
45
|
-
self.error.nil?
|
46
|
-
end
|
47
|
-
|
48
|
-
def access_token
|
49
|
-
@access_token ||= Doorkeeper::AccessToken.matching_token_for client, base_token.resource_owner_id, base_token.scopes
|
50
|
-
end
|
51
|
-
|
52
|
-
def token_type
|
53
|
-
"bearer"
|
54
|
-
end
|
55
|
-
|
56
|
-
def error_response
|
57
|
-
Doorkeeper::OAuth::ErrorResponse.from_request(self)
|
58
|
-
end
|
59
|
-
|
60
|
-
private
|
61
|
-
|
62
|
-
def find_or_create_access_token
|
63
|
-
if access_token
|
64
|
-
access_token.expired? ? revoke_and_create_access_token : access_token
|
65
|
-
else
|
66
|
-
create_access_token
|
67
|
-
end
|
68
|
-
end
|
69
|
-
|
70
|
-
def revoke_and_create_access_token
|
71
|
-
access_token.revoke
|
72
|
-
create_access_token
|
73
|
-
end
|
74
|
-
|
75
|
-
def revoke_base_token
|
76
|
-
base_token.revoke
|
77
|
-
end
|
78
|
-
|
79
|
-
def base_token
|
80
|
-
@base_token ||= refresh_token? ? token_via_refresh_token : token_via_authorization_code
|
81
|
-
end
|
82
|
-
|
83
|
-
def token_via_authorization_code
|
84
|
-
Doorkeeper::AccessGrant.authenticate(code)
|
85
|
-
end
|
86
|
-
|
87
|
-
def token_via_refresh_token
|
88
|
-
Doorkeeper::AccessToken.by_refresh_token(refresh_token)
|
89
|
-
end
|
90
|
-
|
91
|
-
def create_access_token
|
92
|
-
@access_token = Doorkeeper::AccessToken.create!({
|
93
|
-
:application_id => client.id,
|
94
|
-
:resource_owner_id => base_token.resource_owner_id,
|
95
|
-
:scopes => base_token.scopes_string,
|
96
|
-
:expires_in => configuration.access_token_expires_in,
|
97
|
-
:use_refresh_token => refresh_token_enabled?
|
98
|
-
})
|
99
|
-
end
|
100
|
-
|
101
|
-
def validate_attributes
|
102
|
-
return false unless grant_type.present?
|
103
|
-
if refresh_token_enabled? && refresh_token?
|
104
|
-
refresh_token.present?
|
105
|
-
else
|
106
|
-
code.present? && redirect_uri.present?
|
107
|
-
end
|
108
|
-
end
|
109
|
-
|
110
|
-
def refresh_token_enabled?
|
111
|
-
configuration.refresh_token_enabled?
|
112
|
-
end
|
113
|
-
|
114
|
-
def refresh_token?
|
115
|
-
grant_type == "refresh_token"
|
116
|
-
end
|
117
|
-
|
118
|
-
def validate_client
|
119
|
-
!!client
|
120
|
-
end
|
121
|
-
|
122
|
-
def validate_grant
|
123
|
-
return false unless base_token && base_token.application_id == client.id
|
124
|
-
refresh_token? ? !base_token.revoked? : base_token.accessible?
|
125
|
-
end
|
126
|
-
|
127
|
-
def validate_redirect_uri
|
128
|
-
refresh_token? ? true : base_token.redirect_uri == redirect_uri
|
129
|
-
end
|
130
|
-
|
131
|
-
def validate_grant_type
|
132
|
-
%w(authorization_code refresh_token).include? grant_type
|
133
|
-
end
|
134
|
-
|
135
|
-
def configuration
|
136
|
-
Doorkeeper.configuration
|
137
|
-
end
|
138
|
-
end
|
139
|
-
end
|