doorkeeper 4.3.2 → 5.0.0.rc1

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.
Files changed (176) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -0
  3. data/.rubocop.yml +4 -0
  4. data/.travis.yml +2 -0
  5. data/Appraisals +2 -2
  6. data/Gemfile +1 -1
  7. data/NEWS.md +36 -0
  8. data/README.md +85 -3
  9. data/Rakefile +6 -0
  10. data/app/assets/stylesheets/doorkeeper/admin/application.css +2 -2
  11. data/app/controllers/doorkeeper/application_controller.rb +4 -3
  12. data/app/controllers/doorkeeper/application_metal_controller.rb +4 -0
  13. data/app/controllers/doorkeeper/applications_controller.rb +43 -22
  14. data/app/controllers/doorkeeper/authorizations_controller.rb +55 -12
  15. data/app/controllers/doorkeeper/authorized_applications_controller.rb +15 -1
  16. data/app/controllers/doorkeeper/tokens_controller.rb +2 -6
  17. data/app/helpers/doorkeeper/dashboard_helper.rb +7 -7
  18. data/app/validators/redirect_uri_validator.rb +3 -2
  19. data/app/views/doorkeeper/applications/_delete_form.html.erb +3 -1
  20. data/app/views/doorkeeper/applications/_form.html.erb +31 -19
  21. data/app/views/doorkeeper/applications/edit.html.erb +1 -1
  22. data/app/views/doorkeeper/applications/index.html.erb +18 -6
  23. data/app/views/doorkeeper/applications/new.html.erb +1 -1
  24. data/app/views/doorkeeper/applications/show.html.erb +8 -5
  25. data/app/views/doorkeeper/authorizations/error.html.erb +1 -1
  26. data/app/views/doorkeeper/authorizations/new.html.erb +4 -0
  27. data/app/views/layouts/doorkeeper/admin.html.erb +15 -15
  28. data/config/locales/en.yml +15 -1
  29. data/gemfiles/rails_5_2.gemfile +1 -1
  30. data/lib/doorkeeper/config.rb +60 -23
  31. data/lib/doorkeeper/engine.rb +4 -0
  32. data/lib/doorkeeper/errors.rb +2 -5
  33. data/lib/doorkeeper/grape/helpers.rb +1 -1
  34. data/lib/doorkeeper/helpers/controller.rb +7 -2
  35. data/lib/doorkeeper/models/access_grant_mixin.rb +56 -0
  36. data/lib/doorkeeper/models/access_token_mixin.rb +37 -20
  37. data/lib/doorkeeper/models/application_mixin.rb +8 -1
  38. data/lib/doorkeeper/models/concerns/scopes.rb +1 -1
  39. data/lib/doorkeeper/oauth/authorization/code.rb +31 -8
  40. data/lib/doorkeeper/oauth/authorization/context.rb +15 -0
  41. data/lib/doorkeeper/oauth/authorization/token.rb +23 -6
  42. data/lib/doorkeeper/oauth/authorization_code_request.rb +27 -2
  43. data/lib/doorkeeper/oauth/base_request.rb +18 -8
  44. data/lib/doorkeeper/oauth/client/credentials.rb +4 -2
  45. data/lib/doorkeeper/oauth/client_credentials/issuer.rb +6 -1
  46. data/lib/doorkeeper/oauth/client_credentials/validation.rb +4 -2
  47. data/lib/doorkeeper/oauth/error_response.rb +11 -3
  48. data/lib/doorkeeper/oauth/helpers/scope_checker.rb +0 -8
  49. data/lib/doorkeeper/oauth/helpers/uri_checker.rb +1 -0
  50. data/lib/doorkeeper/oauth/password_access_token_request.rb +7 -4
  51. data/lib/doorkeeper/oauth/pre_authorization.rb +45 -13
  52. data/lib/doorkeeper/oauth/refresh_token_request.rb +6 -1
  53. data/lib/doorkeeper/oauth/scopes.rb +1 -1
  54. data/lib/doorkeeper/oauth/token.rb +5 -2
  55. data/lib/doorkeeper/oauth/token_introspection.rb +2 -2
  56. data/lib/doorkeeper/oauth/token_response.rb +4 -2
  57. data/lib/doorkeeper/oauth.rb +13 -0
  58. data/lib/doorkeeper/orm/active_record/application.rb +14 -0
  59. data/lib/doorkeeper/orm/active_record/stale_records_cleaner.rb +26 -0
  60. data/lib/doorkeeper/orm/active_record.rb +2 -0
  61. data/lib/doorkeeper/rails/helpers.rb +2 -4
  62. data/lib/doorkeeper/rails/routes.rb +13 -1
  63. data/lib/doorkeeper/rake/db.rake +40 -0
  64. data/lib/doorkeeper/rake/setup.rake +6 -0
  65. data/lib/doorkeeper/rake.rb +14 -0
  66. data/lib/doorkeeper/request/password.rb +1 -11
  67. data/lib/doorkeeper/request.rb +28 -28
  68. data/lib/doorkeeper/version.rb +5 -4
  69. data/lib/doorkeeper.rb +4 -17
  70. data/lib/generators/doorkeeper/application_owner_generator.rb +23 -18
  71. data/lib/generators/doorkeeper/confidential_applications_generator.rb +32 -0
  72. data/lib/generators/doorkeeper/install_generator.rb +17 -9
  73. data/lib/generators/doorkeeper/migration_generator.rb +23 -18
  74. data/lib/generators/doorkeeper/pkce_generator.rb +32 -0
  75. data/lib/generators/doorkeeper/previous_refresh_token_generator.rb +29 -24
  76. data/lib/generators/doorkeeper/templates/add_confidential_to_applications.rb.erb +13 -0
  77. data/lib/generators/doorkeeper/templates/enable_pkce_migration.rb.erb +6 -0
  78. data/lib/generators/doorkeeper/templates/initializer.rb +60 -9
  79. data/lib/generators/doorkeeper/templates/migration.rb.erb +1 -0
  80. data/lib/generators/doorkeeper/views_generator.rb +3 -1
  81. data/spec/controllers/application_metal_controller_spec.rb +50 -0
  82. data/spec/controllers/applications_controller_spec.rb +126 -13
  83. data/spec/controllers/authorizations_controller_spec.rb +250 -15
  84. data/spec/controllers/protected_resources_controller_spec.rb +16 -16
  85. data/spec/controllers/token_info_controller_spec.rb +4 -12
  86. data/spec/controllers/tokens_controller_spec.rb +12 -14
  87. data/spec/dummy/app/assets/config/manifest.js +2 -0
  88. data/spec/dummy/config/environments/test.rb +4 -5
  89. data/spec/dummy/config/initializers/doorkeeper.rb +6 -0
  90. data/spec/dummy/config/initializers/new_framework_defaults.rb +4 -0
  91. data/spec/dummy/config/routes.rb +3 -42
  92. data/spec/dummy/db/migrate/20111122132257_create_users.rb +3 -1
  93. data/spec/dummy/db/migrate/20120312140401_add_password_to_users.rb +3 -1
  94. data/spec/dummy/db/migrate/20151223192035_create_doorkeeper_tables.rb +3 -1
  95. data/spec/dummy/db/migrate/20151223200000_add_owner_to_application.rb +3 -1
  96. data/spec/dummy/db/migrate/20160320211015_add_previous_refresh_token_to_access_tokens.rb +3 -1
  97. data/spec/dummy/db/migrate/20170822064514_enable_pkce.rb +6 -0
  98. data/spec/dummy/db/migrate/20180210183654_add_confidential_to_applications.rb +13 -0
  99. data/spec/dummy/db/schema.rb +38 -37
  100. data/spec/generators/application_owner_generator_spec.rb +1 -1
  101. data/spec/generators/confidential_applications_generator_spec.rb +45 -0
  102. data/spec/generators/install_generator_spec.rb +1 -1
  103. data/spec/generators/migration_generator_spec.rb +1 -1
  104. data/spec/generators/pkce_generator_spec.rb +43 -0
  105. data/spec/generators/previous_refresh_token_generator_spec.rb +1 -1
  106. data/spec/generators/views_generator_spec.rb +1 -1
  107. data/spec/grape/grape_integration_spec.rb +1 -1
  108. data/spec/helpers/doorkeeper/dashboard_helper_spec.rb +1 -1
  109. data/spec/lib/config_spec.rb +59 -14
  110. data/spec/lib/doorkeeper_spec.rb +1 -126
  111. data/spec/lib/models/expirable_spec.rb +0 -3
  112. data/spec/lib/models/revocable_spec.rb +0 -2
  113. data/spec/lib/models/scopes_spec.rb +0 -4
  114. data/spec/lib/oauth/authorization/uri_builder_spec.rb +0 -4
  115. data/spec/lib/oauth/authorization_code_request_spec.rb +24 -2
  116. data/spec/lib/oauth/base_request_spec.rb +16 -2
  117. data/spec/lib/oauth/base_response_spec.rb +1 -1
  118. data/spec/lib/oauth/client/credentials_spec.rb +5 -5
  119. data/spec/lib/oauth/client_credentials/creator_spec.rb +5 -1
  120. data/spec/lib/oauth/client_credentials/issuer_spec.rb +26 -7
  121. data/spec/lib/oauth/client_credentials/validation_spec.rb +2 -3
  122. data/spec/lib/oauth/client_credentials_integration_spec.rb +1 -1
  123. data/spec/lib/oauth/client_credentials_request_spec.rb +3 -5
  124. data/spec/lib/oauth/client_spec.rb +0 -3
  125. data/spec/lib/oauth/code_request_spec.rb +4 -2
  126. data/spec/lib/oauth/error_response_spec.rb +0 -3
  127. data/spec/lib/oauth/error_spec.rb +0 -2
  128. data/spec/lib/oauth/forbidden_token_response_spec.rb +1 -4
  129. data/spec/lib/oauth/helpers/scope_checker_spec.rb +0 -3
  130. data/spec/lib/oauth/helpers/unique_token_spec.rb +0 -1
  131. data/spec/lib/oauth/helpers/uri_checker_spec.rb +5 -2
  132. data/spec/lib/oauth/invalid_token_response_spec.rb +1 -4
  133. data/spec/lib/oauth/password_access_token_request_spec.rb +37 -2
  134. data/spec/lib/oauth/pre_authorization_spec.rb +40 -6
  135. data/spec/lib/oauth/refresh_token_request_spec.rb +11 -7
  136. data/spec/lib/oauth/scopes_spec.rb +0 -3
  137. data/spec/lib/oauth/token_request_spec.rb +4 -5
  138. data/spec/lib/oauth/token_response_spec.rb +0 -1
  139. data/spec/lib/oauth/token_spec.rb +37 -14
  140. data/spec/lib/orm/active_record/stale_records_cleaner_spec.rb +79 -0
  141. data/spec/lib/request/strategy_spec.rb +0 -1
  142. data/spec/lib/server_spec.rb +1 -1
  143. data/spec/models/doorkeeper/access_grant_spec.rb +1 -1
  144. data/spec/models/doorkeeper/access_token_spec.rb +50 -16
  145. data/spec/models/doorkeeper/application_spec.rb +51 -6
  146. data/spec/requests/applications/applications_request_spec.rb +89 -1
  147. data/spec/requests/applications/authorized_applications_spec.rb +1 -1
  148. data/spec/requests/endpoints/authorization_spec.rb +1 -1
  149. data/spec/requests/endpoints/token_spec.rb +7 -5
  150. data/spec/requests/flows/authorization_code_errors_spec.rb +1 -1
  151. data/spec/requests/flows/authorization_code_spec.rb +197 -1
  152. data/spec/requests/flows/client_credentials_spec.rb +46 -6
  153. data/spec/requests/flows/implicit_grant_errors_spec.rb +1 -1
  154. data/spec/requests/flows/implicit_grant_spec.rb +38 -11
  155. data/spec/requests/flows/password_spec.rb +120 -23
  156. data/spec/requests/flows/refresh_token_spec.rb +2 -2
  157. data/spec/requests/flows/revoke_token_spec.rb +11 -11
  158. data/spec/requests/flows/skip_authorization_spec.rb +16 -11
  159. data/spec/requests/protected_resources/metal_spec.rb +1 -1
  160. data/spec/requests/protected_resources/private_api_spec.rb +1 -1
  161. data/spec/routing/custom_controller_routes_spec.rb +59 -7
  162. data/spec/routing/default_routes_spec.rb +2 -2
  163. data/spec/routing/scoped_routes_spec.rb +16 -2
  164. data/spec/spec_helper.rb +54 -3
  165. data/spec/spec_helper_integration.rb +2 -74
  166. data/spec/support/doorkeeper_rspec.rb +19 -0
  167. data/spec/support/helpers/authorization_request_helper.rb +4 -4
  168. data/spec/support/helpers/request_spec_helper.rb +2 -2
  169. data/spec/support/helpers/url_helper.rb +7 -3
  170. data/spec/support/http_method_shim.rb +12 -16
  171. data/spec/validators/redirect_uri_validator_spec.rb +7 -1
  172. data/spec/version/version_spec.rb +3 -3
  173. data/vendor/assets/stylesheets/doorkeeper/bootstrap.min.css +4 -5
  174. metadata +32 -8
  175. data/spec/controllers/application_metal_controller.rb +0 -10
  176. /data/spec/support/dependencies/{factory_girl.rb → factory_bot.rb} +0 -0
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: doorkeeper
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.3.2
4
+ version: 5.0.0.rc1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Felipe Elias Philipp
@@ -11,7 +11,7 @@ authors:
11
11
  autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2018-03-28 00:00:00.000000000 Z
14
+ date: 2018-06-11 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: railties
@@ -211,7 +211,9 @@ files:
211
211
  - lib/doorkeeper/models/concerns/ownership.rb
212
212
  - lib/doorkeeper/models/concerns/revocable.rb
213
213
  - lib/doorkeeper/models/concerns/scopes.rb
214
+ - lib/doorkeeper/oauth.rb
214
215
  - lib/doorkeeper/oauth/authorization/code.rb
216
+ - lib/doorkeeper/oauth/authorization/context.rb
215
217
  - lib/doorkeeper/oauth/authorization/token.rb
216
218
  - lib/doorkeeper/oauth/authorization/uri_builder.rb
217
219
  - lib/doorkeeper/oauth/authorization_code_request.rb
@@ -244,10 +246,14 @@ files:
244
246
  - lib/doorkeeper/orm/active_record/access_grant.rb
245
247
  - lib/doorkeeper/orm/active_record/access_token.rb
246
248
  - lib/doorkeeper/orm/active_record/application.rb
249
+ - lib/doorkeeper/orm/active_record/stale_records_cleaner.rb
247
250
  - lib/doorkeeper/rails/helpers.rb
248
251
  - lib/doorkeeper/rails/routes.rb
249
252
  - lib/doorkeeper/rails/routes/mapper.rb
250
253
  - lib/doorkeeper/rails/routes/mapping.rb
254
+ - lib/doorkeeper/rake.rb
255
+ - lib/doorkeeper/rake/db.rake
256
+ - lib/doorkeeper/rake/setup.rake
251
257
  - lib/doorkeeper/request.rb
252
258
  - lib/doorkeeper/request/authorization_code.rb
253
259
  - lib/doorkeeper/request/client_credentials.rb
@@ -260,22 +266,27 @@ files:
260
266
  - lib/doorkeeper/validations.rb
261
267
  - lib/doorkeeper/version.rb
262
268
  - lib/generators/doorkeeper/application_owner_generator.rb
269
+ - lib/generators/doorkeeper/confidential_applications_generator.rb
263
270
  - lib/generators/doorkeeper/install_generator.rb
264
271
  - lib/generators/doorkeeper/migration_generator.rb
272
+ - lib/generators/doorkeeper/pkce_generator.rb
265
273
  - lib/generators/doorkeeper/previous_refresh_token_generator.rb
266
274
  - lib/generators/doorkeeper/templates/README
275
+ - lib/generators/doorkeeper/templates/add_confidential_to_applications.rb.erb
267
276
  - lib/generators/doorkeeper/templates/add_owner_to_application_migration.rb.erb
268
277
  - lib/generators/doorkeeper/templates/add_previous_refresh_token_to_access_tokens.rb.erb
278
+ - lib/generators/doorkeeper/templates/enable_pkce_migration.rb.erb
269
279
  - lib/generators/doorkeeper/templates/initializer.rb
270
280
  - lib/generators/doorkeeper/templates/migration.rb.erb
271
281
  - lib/generators/doorkeeper/views_generator.rb
272
- - spec/controllers/application_metal_controller.rb
282
+ - spec/controllers/application_metal_controller_spec.rb
273
283
  - spec/controllers/applications_controller_spec.rb
274
284
  - spec/controllers/authorizations_controller_spec.rb
275
285
  - spec/controllers/protected_resources_controller_spec.rb
276
286
  - spec/controllers/token_info_controller_spec.rb
277
287
  - spec/controllers/tokens_controller_spec.rb
278
288
  - spec/dummy/Rakefile
289
+ - spec/dummy/app/assets/config/manifest.js
279
290
  - spec/dummy/app/controllers/application_controller.rb
280
291
  - spec/dummy/app/controllers/custom_authorizations_controller.rb
281
292
  - spec/dummy/app/controllers/full_protected_resources_controller.rb
@@ -307,6 +318,8 @@ files:
307
318
  - spec/dummy/db/migrate/20151223192035_create_doorkeeper_tables.rb
308
319
  - spec/dummy/db/migrate/20151223200000_add_owner_to_application.rb
309
320
  - spec/dummy/db/migrate/20160320211015_add_previous_refresh_token_to_access_tokens.rb
321
+ - spec/dummy/db/migrate/20170822064514_enable_pkce.rb
322
+ - spec/dummy/db/migrate/20180210183654_add_confidential_to_applications.rb
310
323
  - spec/dummy/db/schema.rb
311
324
  - spec/dummy/public/404.html
312
325
  - spec/dummy/public/422.html
@@ -315,8 +328,10 @@ files:
315
328
  - spec/dummy/script/rails
316
329
  - spec/factories.rb
317
330
  - spec/generators/application_owner_generator_spec.rb
331
+ - spec/generators/confidential_applications_generator_spec.rb
318
332
  - spec/generators/install_generator_spec.rb
319
333
  - spec/generators/migration_generator_spec.rb
334
+ - spec/generators/pkce_generator_spec.rb
320
335
  - spec/generators/previous_refresh_token_generator_spec.rb
321
336
  - spec/generators/templates/routes.rb
322
337
  - spec/generators/views_generator_spec.rb
@@ -354,6 +369,7 @@ files:
354
369
  - spec/lib/oauth/token_request_spec.rb
355
370
  - spec/lib/oauth/token_response_spec.rb
356
371
  - spec/lib/oauth/token_spec.rb
372
+ - spec/lib/orm/active_record/stale_records_cleaner_spec.rb
357
373
  - spec/lib/request/strategy_spec.rb
358
374
  - spec/lib/server_spec.rb
359
375
  - spec/models/doorkeeper/access_grant_spec.rb
@@ -379,7 +395,8 @@ files:
379
395
  - spec/routing/scoped_routes_spec.rb
380
396
  - spec/spec_helper.rb
381
397
  - spec/spec_helper_integration.rb
382
- - spec/support/dependencies/factory_girl.rb
398
+ - spec/support/dependencies/factory_bot.rb
399
+ - spec/support/doorkeeper_rspec.rb
383
400
  - spec/support/helpers/access_token_request_helper.rb
384
401
  - spec/support/helpers/authorization_request_helper.rb
385
402
  - spec/support/helpers/config_helper.rb
@@ -408,9 +425,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
408
425
  version: '2.1'
409
426
  required_rubygems_version: !ruby/object:Gem::Requirement
410
427
  requirements:
411
- - - ">="
428
+ - - ">"
412
429
  - !ruby/object:Gem::Version
413
- version: '0'
430
+ version: 1.3.1
414
431
  requirements: []
415
432
  rubyforge_project:
416
433
  rubygems_version: 2.6.11
@@ -418,13 +435,14 @@ signing_key:
418
435
  specification_version: 4
419
436
  summary: OAuth 2 provider for Rails and Grape
420
437
  test_files:
421
- - spec/controllers/application_metal_controller.rb
438
+ - spec/controllers/application_metal_controller_spec.rb
422
439
  - spec/controllers/applications_controller_spec.rb
423
440
  - spec/controllers/authorizations_controller_spec.rb
424
441
  - spec/controllers/protected_resources_controller_spec.rb
425
442
  - spec/controllers/token_info_controller_spec.rb
426
443
  - spec/controllers/tokens_controller_spec.rb
427
444
  - spec/dummy/Rakefile
445
+ - spec/dummy/app/assets/config/manifest.js
428
446
  - spec/dummy/app/controllers/application_controller.rb
429
447
  - spec/dummy/app/controllers/custom_authorizations_controller.rb
430
448
  - spec/dummy/app/controllers/full_protected_resources_controller.rb
@@ -456,6 +474,8 @@ test_files:
456
474
  - spec/dummy/db/migrate/20151223192035_create_doorkeeper_tables.rb
457
475
  - spec/dummy/db/migrate/20151223200000_add_owner_to_application.rb
458
476
  - spec/dummy/db/migrate/20160320211015_add_previous_refresh_token_to_access_tokens.rb
477
+ - spec/dummy/db/migrate/20170822064514_enable_pkce.rb
478
+ - spec/dummy/db/migrate/20180210183654_add_confidential_to_applications.rb
459
479
  - spec/dummy/db/schema.rb
460
480
  - spec/dummy/public/404.html
461
481
  - spec/dummy/public/422.html
@@ -464,8 +484,10 @@ test_files:
464
484
  - spec/dummy/script/rails
465
485
  - spec/factories.rb
466
486
  - spec/generators/application_owner_generator_spec.rb
487
+ - spec/generators/confidential_applications_generator_spec.rb
467
488
  - spec/generators/install_generator_spec.rb
468
489
  - spec/generators/migration_generator_spec.rb
490
+ - spec/generators/pkce_generator_spec.rb
469
491
  - spec/generators/previous_refresh_token_generator_spec.rb
470
492
  - spec/generators/templates/routes.rb
471
493
  - spec/generators/views_generator_spec.rb
@@ -503,6 +525,7 @@ test_files:
503
525
  - spec/lib/oauth/token_request_spec.rb
504
526
  - spec/lib/oauth/token_response_spec.rb
505
527
  - spec/lib/oauth/token_spec.rb
528
+ - spec/lib/orm/active_record/stale_records_cleaner_spec.rb
506
529
  - spec/lib/request/strategy_spec.rb
507
530
  - spec/lib/server_spec.rb
508
531
  - spec/models/doorkeeper/access_grant_spec.rb
@@ -528,7 +551,8 @@ test_files:
528
551
  - spec/routing/scoped_routes_spec.rb
529
552
  - spec/spec_helper.rb
530
553
  - spec/spec_helper_integration.rb
531
- - spec/support/dependencies/factory_girl.rb
554
+ - spec/support/dependencies/factory_bot.rb
555
+ - spec/support/doorkeeper_rspec.rb
532
556
  - spec/support/helpers/access_token_request_helper.rb
533
557
  - spec/support/helpers/authorization_request_helper.rb
534
558
  - spec/support/helpers/config_helper.rb
@@ -1,10 +0,0 @@
1
- require "spec_helper_integration"
2
-
3
- describe Doorkeeper::ApplicationMetalController do
4
- it "lazy run hooks" do
5
- i = 0
6
- ActiveSupport.on_load(:doorkeeper_metal_controller) { i += 1 }
7
-
8
- expect(i).to eq 1
9
- end
10
- end