doorkeeper 3.1.0 → 5.6.2

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.

Files changed (270) hide show
  1. checksums.yaml +5 -5
  2. data/CHANGELOG.md +1079 -0
  3. data/README.md +114 -326
  4. data/app/assets/stylesheets/doorkeeper/admin/application.css +2 -2
  5. data/app/controllers/doorkeeper/application_controller.rb +7 -6
  6. data/app/controllers/doorkeeper/application_metal_controller.rb +9 -12
  7. data/app/controllers/doorkeeper/applications_controller.rb +66 -21
  8. data/app/controllers/doorkeeper/authorizations_controller.rb +100 -18
  9. data/app/controllers/doorkeeper/authorized_applications_controller.rb +23 -4
  10. data/app/controllers/doorkeeper/token_info_controller.rb +16 -4
  11. data/app/controllers/doorkeeper/tokens_controller.rb +138 -22
  12. data/app/helpers/doorkeeper/dashboard_helper.rb +15 -9
  13. data/app/views/doorkeeper/applications/_delete_form.html.erb +4 -3
  14. data/app/views/doorkeeper/applications/_form.html.erb +33 -21
  15. data/app/views/doorkeeper/applications/edit.html.erb +1 -1
  16. data/app/views/doorkeeper/applications/index.html.erb +18 -6
  17. data/app/views/doorkeeper/applications/new.html.erb +1 -1
  18. data/app/views/doorkeeper/applications/show.html.erb +40 -16
  19. data/app/views/doorkeeper/authorizations/error.html.erb +1 -1
  20. data/app/views/doorkeeper/authorizations/form_post.html.erb +15 -0
  21. data/app/views/doorkeeper/authorizations/new.html.erb +17 -11
  22. data/app/views/doorkeeper/authorized_applications/_delete_form.html.erb +1 -2
  23. data/app/views/doorkeeper/authorized_applications/index.html.erb +0 -1
  24. data/app/views/layouts/doorkeeper/admin.html.erb +16 -14
  25. data/config/locales/en.yml +37 -9
  26. data/lib/doorkeeper/config/abstract_builder.rb +28 -0
  27. data/lib/doorkeeper/config/option.rb +82 -0
  28. data/lib/doorkeeper/config/validations.rb +53 -0
  29. data/lib/doorkeeper/config.rb +602 -142
  30. data/lib/doorkeeper/engine.rb +22 -7
  31. data/lib/doorkeeper/errors.rb +37 -10
  32. data/lib/doorkeeper/grant_flow/fallback_flow.rb +15 -0
  33. data/lib/doorkeeper/grant_flow/flow.rb +44 -0
  34. data/lib/doorkeeper/grant_flow/registry.rb +50 -0
  35. data/lib/doorkeeper/grant_flow.rb +45 -0
  36. data/lib/doorkeeper/grape/authorization_decorator.rb +6 -4
  37. data/lib/doorkeeper/grape/helpers.rb +24 -12
  38. data/lib/doorkeeper/helpers/controller.rb +49 -27
  39. data/lib/doorkeeper/models/access_grant_mixin.rb +99 -16
  40. data/lib/doorkeeper/models/access_token_mixin.rb +386 -77
  41. data/lib/doorkeeper/models/application_mixin.rb +73 -30
  42. data/lib/doorkeeper/models/concerns/accessible.rb +6 -0
  43. data/lib/doorkeeper/models/concerns/expirable.rb +20 -6
  44. data/lib/doorkeeper/models/concerns/expiration_time_sql_math.rb +88 -0
  45. data/lib/doorkeeper/models/concerns/orderable.rb +15 -0
  46. data/lib/doorkeeper/models/concerns/ownership.rb +4 -2
  47. data/lib/doorkeeper/models/concerns/resource_ownerable.rb +47 -0
  48. data/lib/doorkeeper/models/concerns/reusable.rb +19 -0
  49. data/lib/doorkeeper/models/concerns/revocable.rb +13 -2
  50. data/lib/doorkeeper/models/concerns/scopes.rb +12 -2
  51. data/lib/doorkeeper/models/concerns/secret_storable.rb +106 -0
  52. data/lib/doorkeeper/oauth/authorization/code.rb +48 -12
  53. data/lib/doorkeeper/oauth/authorization/context.rb +17 -0
  54. data/lib/doorkeeper/oauth/authorization/token.rb +72 -28
  55. data/lib/doorkeeper/oauth/authorization/uri_builder.rb +22 -18
  56. data/lib/doorkeeper/oauth/authorization_code_request.rb +64 -14
  57. data/lib/doorkeeper/oauth/base_request.rb +66 -0
  58. data/lib/doorkeeper/oauth/base_response.rb +31 -0
  59. data/lib/doorkeeper/oauth/client/credentials.rb +23 -10
  60. data/lib/doorkeeper/oauth/client.rb +10 -12
  61. data/lib/doorkeeper/oauth/client_credentials/creator.rb +48 -4
  62. data/lib/doorkeeper/oauth/client_credentials/issuer.rb +17 -9
  63. data/lib/doorkeeper/oauth/client_credentials/validator.rb +55 -0
  64. data/lib/doorkeeper/oauth/client_credentials_request.rb +14 -15
  65. data/lib/doorkeeper/oauth/code_request.rb +8 -12
  66. data/lib/doorkeeper/oauth/code_response.rb +31 -19
  67. data/lib/doorkeeper/oauth/error.rb +5 -3
  68. data/lib/doorkeeper/oauth/error_response.rb +41 -20
  69. data/lib/doorkeeper/oauth/forbidden_token_response.rb +11 -3
  70. data/lib/doorkeeper/oauth/helpers/scope_checker.rb +24 -19
  71. data/lib/doorkeeper/oauth/helpers/unique_token.rb +20 -3
  72. data/lib/doorkeeper/oauth/helpers/uri_checker.rb +55 -4
  73. data/lib/doorkeeper/oauth/hooks/context.rb +21 -0
  74. data/lib/doorkeeper/oauth/invalid_request_response.rb +43 -0
  75. data/lib/doorkeeper/oauth/invalid_token_response.rb +31 -5
  76. data/lib/doorkeeper/oauth/nonstandard.rb +39 -0
  77. data/lib/doorkeeper/oauth/password_access_token_request.rb +46 -18
  78. data/lib/doorkeeper/oauth/pre_authorization.rb +135 -26
  79. data/lib/doorkeeper/oauth/refresh_token_request.rb +67 -30
  80. data/lib/doorkeeper/oauth/scopes.rb +26 -12
  81. data/lib/doorkeeper/oauth/token.rb +28 -25
  82. data/lib/doorkeeper/oauth/token_introspection.rb +202 -0
  83. data/lib/doorkeeper/oauth/token_request.rb +8 -21
  84. data/lib/doorkeeper/oauth/token_response.rb +14 -10
  85. data/lib/doorkeeper/oauth.rb +13 -0
  86. data/lib/doorkeeper/orm/active_record/access_grant.rb +6 -4
  87. data/lib/doorkeeper/orm/active_record/access_token.rb +5 -17
  88. data/lib/doorkeeper/orm/active_record/application.rb +6 -20
  89. data/lib/doorkeeper/orm/active_record/mixins/access_grant.rb +69 -0
  90. data/lib/doorkeeper/orm/active_record/mixins/access_token.rb +81 -0
  91. data/lib/doorkeeper/orm/active_record/mixins/application.rb +214 -0
  92. data/lib/doorkeeper/orm/active_record/redirect_uri_validator.rb +66 -0
  93. data/lib/doorkeeper/orm/active_record/stale_records_cleaner.rb +33 -0
  94. data/lib/doorkeeper/orm/active_record.rb +36 -26
  95. data/lib/doorkeeper/rails/helpers.rb +14 -15
  96. data/lib/doorkeeper/rails/routes/abstract_router.rb +35 -0
  97. data/lib/doorkeeper/rails/routes/mapper.rb +4 -2
  98. data/lib/doorkeeper/rails/routes/mapping.rb +10 -8
  99. data/lib/doorkeeper/rails/routes/registry.rb +45 -0
  100. data/lib/doorkeeper/rails/routes.rb +45 -28
  101. data/lib/doorkeeper/rake/db.rake +40 -0
  102. data/lib/doorkeeper/rake/setup.rake +6 -0
  103. data/lib/doorkeeper/rake.rb +14 -0
  104. data/lib/doorkeeper/request/authorization_code.rb +12 -4
  105. data/lib/doorkeeper/request/client_credentials.rb +3 -3
  106. data/lib/doorkeeper/request/code.rb +1 -1
  107. data/lib/doorkeeper/request/password.rb +5 -4
  108. data/lib/doorkeeper/request/refresh_token.rb +6 -5
  109. data/lib/doorkeeper/request/strategy.rb +4 -2
  110. data/lib/doorkeeper/request/token.rb +1 -1
  111. data/lib/doorkeeper/request.rb +62 -29
  112. data/lib/doorkeeper/secret_storing/base.rb +64 -0
  113. data/lib/doorkeeper/secret_storing/bcrypt.rb +60 -0
  114. data/lib/doorkeeper/secret_storing/plain.rb +33 -0
  115. data/lib/doorkeeper/secret_storing/sha256_hash.rb +26 -0
  116. data/lib/doorkeeper/server.rb +9 -19
  117. data/lib/doorkeeper/stale_records_cleaner.rb +24 -0
  118. data/lib/doorkeeper/validations.rb +5 -2
  119. data/lib/doorkeeper/version.rb +12 -1
  120. data/lib/doorkeeper.rb +112 -56
  121. data/lib/generators/doorkeeper/application_owner_generator.rb +28 -13
  122. data/lib/generators/doorkeeper/confidential_applications_generator.rb +33 -0
  123. data/lib/generators/doorkeeper/enable_polymorphic_resource_owner_generator.rb +39 -0
  124. data/lib/generators/doorkeeper/install_generator.rb +19 -9
  125. data/lib/generators/doorkeeper/migration_generator.rb +27 -10
  126. data/lib/generators/doorkeeper/pkce_generator.rb +33 -0
  127. data/lib/generators/doorkeeper/previous_refresh_token_generator.rb +41 -0
  128. data/lib/generators/doorkeeper/templates/add_confidential_to_applications.rb.erb +13 -0
  129. data/lib/generators/doorkeeper/templates/add_owner_to_application_migration.rb.erb +9 -0
  130. data/lib/generators/doorkeeper/templates/add_previous_refresh_token_to_access_tokens.rb.erb +13 -0
  131. data/lib/generators/doorkeeper/templates/enable_pkce_migration.rb.erb +8 -0
  132. data/lib/generators/doorkeeper/templates/enable_polymorphic_resource_owner_migration.rb.erb +17 -0
  133. data/lib/generators/doorkeeper/templates/initializer.rb +417 -32
  134. data/lib/generators/doorkeeper/templates/migration.rb.erb +88 -0
  135. data/lib/generators/doorkeeper/views_generator.rb +8 -4
  136. data/vendor/assets/stylesheets/doorkeeper/bootstrap.min.css +4 -5
  137. metadata +163 -280
  138. data/.gitignore +0 -14
  139. data/.hound.yml +0 -13
  140. data/.rspec +0 -1
  141. data/.travis.yml +0 -22
  142. data/CONTRIBUTING.md +0 -45
  143. data/Gemfile +0 -10
  144. data/NEWS.md +0 -525
  145. data/RELEASING.md +0 -17
  146. data/Rakefile +0 -20
  147. data/app/validators/redirect_uri_validator.rb +0 -34
  148. data/doorkeeper.gemspec +0 -27
  149. data/lib/doorkeeper/oauth/client/methods.rb +0 -18
  150. data/lib/doorkeeper/oauth/client_credentials/validation.rb +0 -45
  151. data/lib/doorkeeper/oauth/request_concern.rb +0 -48
  152. data/lib/generators/doorkeeper/application_scopes_generator.rb +0 -34
  153. data/lib/generators/doorkeeper/templates/add_owner_to_application_migration.rb +0 -7
  154. data/lib/generators/doorkeeper/templates/add_scopes_to_oauth_applications.rb +0 -5
  155. data/lib/generators/doorkeeper/templates/migration.rb +0 -50
  156. data/spec/controllers/applications_controller_spec.rb +0 -58
  157. data/spec/controllers/authorizations_controller_spec.rb +0 -203
  158. data/spec/controllers/protected_resources_controller_spec.rb +0 -271
  159. data/spec/controllers/token_info_controller_spec.rb +0 -52
  160. data/spec/controllers/tokens_controller_spec.rb +0 -88
  161. data/spec/dummy/Rakefile +0 -7
  162. data/spec/dummy/app/controllers/application_controller.rb +0 -3
  163. data/spec/dummy/app/controllers/custom_authorizations_controller.rb +0 -7
  164. data/spec/dummy/app/controllers/full_protected_resources_controller.rb +0 -12
  165. data/spec/dummy/app/controllers/home_controller.rb +0 -17
  166. data/spec/dummy/app/controllers/metal_controller.rb +0 -11
  167. data/spec/dummy/app/controllers/semi_protected_resources_controller.rb +0 -11
  168. data/spec/dummy/app/helpers/application_helper.rb +0 -5
  169. data/spec/dummy/app/models/user.rb +0 -9
  170. data/spec/dummy/app/views/home/index.html.erb +0 -0
  171. data/spec/dummy/app/views/layouts/application.html.erb +0 -14
  172. data/spec/dummy/config/application.rb +0 -57
  173. data/spec/dummy/config/boot.rb +0 -9
  174. data/spec/dummy/config/database.yml +0 -15
  175. data/spec/dummy/config/environment.rb +0 -5
  176. data/spec/dummy/config/environments/development.rb +0 -29
  177. data/spec/dummy/config/environments/production.rb +0 -62
  178. data/spec/dummy/config/environments/test.rb +0 -55
  179. data/spec/dummy/config/initializers/backtrace_silencers.rb +0 -7
  180. data/spec/dummy/config/initializers/doorkeeper.rb +0 -96
  181. data/spec/dummy/config/initializers/secret_token.rb +0 -9
  182. data/spec/dummy/config/initializers/session_store.rb +0 -8
  183. data/spec/dummy/config/initializers/wrap_parameters.rb +0 -14
  184. data/spec/dummy/config/locales/doorkeeper.en.yml +0 -5
  185. data/spec/dummy/config/routes.rb +0 -52
  186. data/spec/dummy/config.ru +0 -4
  187. data/spec/dummy/db/migrate/20111122132257_create_users.rb +0 -9
  188. data/spec/dummy/db/migrate/20120312140401_add_password_to_users.rb +0 -5
  189. data/spec/dummy/db/migrate/20130902165751_create_doorkeeper_tables.rb +0 -41
  190. data/spec/dummy/db/migrate/20130902175349_add_owner_to_application.rb +0 -7
  191. data/spec/dummy/db/migrate/20141209001746_add_scopes_to_oauth_applications.rb +0 -5
  192. data/spec/dummy/db/schema.rb +0 -66
  193. data/spec/dummy/public/404.html +0 -26
  194. data/spec/dummy/public/422.html +0 -26
  195. data/spec/dummy/public/500.html +0 -26
  196. data/spec/dummy/public/favicon.ico +0 -0
  197. data/spec/dummy/script/rails +0 -6
  198. data/spec/factories.rb +0 -26
  199. data/spec/generators/application_owner_generator_spec.rb +0 -22
  200. data/spec/generators/install_generator_spec.rb +0 -31
  201. data/spec/generators/migration_generator_spec.rb +0 -20
  202. data/spec/generators/templates/routes.rb +0 -3
  203. data/spec/generators/views_generator_spec.rb +0 -27
  204. data/spec/helpers/doorkeeper/dashboard_helper_spec.rb +0 -24
  205. data/spec/lib/config_spec.rb +0 -317
  206. data/spec/lib/doorkeeper_spec.rb +0 -28
  207. data/spec/lib/models/expirable_spec.rb +0 -51
  208. data/spec/lib/models/revocable_spec.rb +0 -36
  209. data/spec/lib/models/scopes_spec.rb +0 -43
  210. data/spec/lib/oauth/authorization/uri_builder_spec.rb +0 -42
  211. data/spec/lib/oauth/authorization_code_request_spec.rb +0 -80
  212. data/spec/lib/oauth/client/credentials_spec.rb +0 -47
  213. data/spec/lib/oauth/client/methods_spec.rb +0 -54
  214. data/spec/lib/oauth/client_credentials/creator_spec.rb +0 -44
  215. data/spec/lib/oauth/client_credentials/issuer_spec.rb +0 -86
  216. data/spec/lib/oauth/client_credentials/validation_spec.rb +0 -54
  217. data/spec/lib/oauth/client_credentials_integration_spec.rb +0 -27
  218. data/spec/lib/oauth/client_credentials_request_spec.rb +0 -104
  219. data/spec/lib/oauth/client_spec.rb +0 -39
  220. data/spec/lib/oauth/code_request_spec.rb +0 -45
  221. data/spec/lib/oauth/error_response_spec.rb +0 -61
  222. data/spec/lib/oauth/error_spec.rb +0 -23
  223. data/spec/lib/oauth/forbidden_token_response_spec.rb +0 -23
  224. data/spec/lib/oauth/helpers/scope_checker_spec.rb +0 -64
  225. data/spec/lib/oauth/helpers/unique_token_spec.rb +0 -20
  226. data/spec/lib/oauth/helpers/uri_checker_spec.rb +0 -104
  227. data/spec/lib/oauth/invalid_token_response_spec.rb +0 -28
  228. data/spec/lib/oauth/password_access_token_request_spec.rb +0 -90
  229. data/spec/lib/oauth/pre_authorization_spec.rb +0 -155
  230. data/spec/lib/oauth/refresh_token_request_spec.rb +0 -123
  231. data/spec/lib/oauth/scopes_spec.rb +0 -123
  232. data/spec/lib/oauth/token_request_spec.rb +0 -98
  233. data/spec/lib/oauth/token_response_spec.rb +0 -85
  234. data/spec/lib/oauth/token_spec.rb +0 -109
  235. data/spec/lib/request/strategy_spec.rb +0 -53
  236. data/spec/lib/server_spec.rb +0 -52
  237. data/spec/models/doorkeeper/access_grant_spec.rb +0 -36
  238. data/spec/models/doorkeeper/access_token_spec.rb +0 -350
  239. data/spec/models/doorkeeper/application_spec.rb +0 -187
  240. data/spec/requests/applications/applications_request_spec.rb +0 -94
  241. data/spec/requests/applications/authorized_applications_spec.rb +0 -30
  242. data/spec/requests/endpoints/authorization_spec.rb +0 -72
  243. data/spec/requests/endpoints/token_spec.rb +0 -64
  244. data/spec/requests/flows/authorization_code_errors_spec.rb +0 -66
  245. data/spec/requests/flows/authorization_code_spec.rb +0 -156
  246. data/spec/requests/flows/client_credentials_spec.rb +0 -58
  247. data/spec/requests/flows/implicit_grant_errors_spec.rb +0 -32
  248. data/spec/requests/flows/implicit_grant_spec.rb +0 -61
  249. data/spec/requests/flows/password_spec.rb +0 -94
  250. data/spec/requests/flows/refresh_token_spec.rb +0 -104
  251. data/spec/requests/flows/revoke_token_spec.rb +0 -143
  252. data/spec/requests/flows/skip_authorization_spec.rb +0 -59
  253. data/spec/requests/protected_resources/metal_spec.rb +0 -14
  254. data/spec/requests/protected_resources/private_api_spec.rb +0 -81
  255. data/spec/routing/custom_controller_routes_spec.rb +0 -71
  256. data/spec/routing/default_routes_spec.rb +0 -35
  257. data/spec/routing/scoped_routes_spec.rb +0 -31
  258. data/spec/spec_helper.rb +0 -2
  259. data/spec/spec_helper_integration.rb +0 -56
  260. data/spec/support/dependencies/factory_girl.rb +0 -2
  261. data/spec/support/helpers/access_token_request_helper.rb +0 -11
  262. data/spec/support/helpers/authorization_request_helper.rb +0 -41
  263. data/spec/support/helpers/config_helper.rb +0 -9
  264. data/spec/support/helpers/model_helper.rb +0 -45
  265. data/spec/support/helpers/request_spec_helper.rb +0 -76
  266. data/spec/support/helpers/url_helper.rb +0 -55
  267. data/spec/support/orm/active_record.rb +0 -3
  268. data/spec/support/shared/controllers_shared_context.rb +0 -60
  269. data/spec/support/shared/models_shared_examples.rb +0 -52
  270. data/spec/validators/redirect_uri_validator_spec.rb +0 -78
data/.travis.yml DELETED
@@ -1,22 +0,0 @@
1
- cache: bundler
2
- language: ruby
3
- sudo: false
4
-
5
- rvm:
6
- - 2.0
7
- - 2.1
8
- - 2.2
9
- - jruby-head
10
-
11
- env:
12
- - rails=3.2.0
13
- - rails=4.1.0
14
- - rails=4.2.0
15
-
16
- matrix:
17
- exclude:
18
- - env: rails=3.2.0
19
- rvm: jruby-head
20
- exclude:
21
- - env: rails=3.2.0
22
- rvm: 2.2
data/CONTRIBUTING.md DELETED
@@ -1,45 +0,0 @@
1
- # Contributing
2
-
3
- We love pull requests from everyone. By participating in this project, you agree
4
- to abide by the thoughtbot [code of conduct].
5
-
6
- [code of conduct]: https://thoughtbot.com/open-source-code-of-conduct
7
-
8
- Fork, then clone the repo:
9
-
10
- git clone git@github.com:your-username/doorkeeper.git
11
-
12
- Set up Ruby dependencies via Bundler
13
-
14
- bundle install
15
-
16
- Make sure the tests pass:
17
-
18
- rake
19
-
20
- Make your change.
21
- Write tests.
22
- Follow our [style guide][style].
23
- Make the tests pass:
24
-
25
- [style]: https://github.com/thoughtbot/guides/tree/master/style
26
-
27
- rake
28
-
29
- Write a [good commit message][commit].
30
- Push to your fork.
31
- [Submit a pull request][pr].
32
-
33
- [commit]: http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html
34
- [pr]: https://github.com/doorkeeper-gem/doorkeeper/compare/
35
-
36
- If [Hound] catches style violations,
37
- fix them.
38
-
39
- [hound]: https://houndci.com
40
-
41
- Wait for us.
42
- We try to at least comment on pull requests within one business day.
43
- We may suggest changes.
44
-
45
- Thank you for your contribution!
data/Gemfile DELETED
@@ -1,10 +0,0 @@
1
- ENV['rails'] ||= '4.2.0'
2
-
3
- source 'https://rubygems.org'
4
-
5
- gem 'rails', "~> #{ENV['rails']}"
6
-
7
- gem "sqlite3", platform: [:ruby, :mswin, :mingw]
8
- gem "activerecord-jdbcsqlite3-adapter", platform: :jruby
9
-
10
- gemspec
data/NEWS.md DELETED
@@ -1,525 +0,0 @@
1
- # News
2
-
3
- User-visible changes worth mentioning.
4
-
5
- ---
6
-
7
- ## 3.1.0
8
-
9
- - [#736] Existing valid tokens are now reused in client_credentials flow
10
- - [#749] Allow user to raise authorization error with custom messages.
11
- Under `resource_owner_authenticator` block a user can
12
- `raise Doorkeeper::Errors::DoorkeeperError.new('custom_message')`
13
- - [#762] Check doesn’t abort the actual migration, so it runs
14
- - [#722] `doorkeeper_forbidden_render_options` now supports returning a 404 by
15
- specifying `respond_not_found_when_forbidden: true` in the
16
- `doorkeeper_forbidden_render_options` method.
17
- - [#734] Simplify and remove duplication in request strategy classes
18
-
19
- ## 3.0.1
20
-
21
- - [#712] Wrap exchange of grant token for access token and access token refresh
22
- in transactions
23
- - [#704] Allow applications scopes to be mass assigned
24
- - [#707] Fixed order of Mixin inclusion and table_name configuration in models
25
- - [#712] Wrap access token and refresh grants in transactions
26
- - Adds JRuby support
27
- - Specs, views and documentation adjustments
28
-
29
- ## 3.0.0
30
-
31
- ### Other changes
32
-
33
- - [#693] Updates `en.yml`.
34
-
35
- ## 3.0.0 (rc2)
36
-
37
- ### Backward incompatible changes
38
-
39
- - [#678] Change application-specific scopes to take precedence over server-wide
40
- scopes. This removes the previous behavior where the intersection between
41
- application and server scopes was used.
42
-
43
- ### Other changes
44
-
45
- - [#671] Fixes `NoMethodError - undefined method 'getlocal'` when calling
46
- the /oauth/token path. Switch from using a DateTime object to update
47
- AR to using a Time object. (Issue #668)
48
- - [#677] Support editing application-specific scopes via the standard forms
49
- - [#682] Pass error hash to Grape `error!`
50
- - [#683] Generate application secret/UID if fields are blank strings
51
-
52
- ## 3.0.0 (rc1)
53
-
54
- ### Backward incompatible changes
55
-
56
- - [#648] Extracts mongodb ORMs to
57
- https://github.com/doorkeeper-gem/doorkeeper-mongodb. If you use ActiveRecord
58
- you don’t need to do any change, otherwise you will need to install the new
59
- plugin.
60
- - [#665] `doorkeeper_unauthorized_render_options(error:)` and
61
- `doorkeeper_forbidden_render_options(error:)` now accept `error` keyword
62
- argument.
63
-
64
- ### Removed deprecations
65
-
66
- - Removes `doorkeeper_for` deprecation notice.
67
- - Remove `applications.scopes` upgrade notice.
68
-
69
-
70
- ## 2.2.2 (unreleased)
71
-
72
- - [#541] Fixed `undefined method attr_accessible` problem on Rails 4
73
- (happens only when ProtectedAttributes gem is used) in #599
74
-
75
- ## 2.2.1
76
-
77
- - [#636] `custom_access_token_expires_in` bugfixes
78
- - [#641] syntax error fix (Issue #612)
79
- - [#633] Send extra details to Custom Token Generator
80
- - [#628] Refactor: improve orm adapters to ease extension
81
- - [#637] Upgrade to rspec to 3.2
82
-
83
- ## 2.2.0 - 2015-04-19
84
-
85
- - [#611] Allow custom access token generators to be used
86
- - [#632] Properly fallback to `default_scopes` when no scope is specified
87
- - [#622] Clarify that there is a logical OR between scopes for authorizing
88
- - [#635] Upgrade to rspec 3
89
- - [#627] i18n fallbacks to english
90
- - Moved CHANGELOG to NEWS.md
91
-
92
-
93
- ## 2.1.4 - 2015-03-27
94
-
95
- - [#595] HTTP spec: Add `scope` for refresh token scope param
96
- - [#596] Limit scopes in app scopes for client credentials
97
- - [#567] Add Grape helpers for easier integration with Grape framework
98
- - [#606] Add custom access token expiration support for Client Credentials flow
99
-
100
-
101
- ## 2.1.3 - 2015-03-01
102
-
103
- - [#588] Fixes scopes_match? bug that skipped authorization form in some cases
104
-
105
-
106
- ## 2.1.2 - 2015-02-25
107
-
108
- - [#574] Remove unused update authorization route.
109
- - [#576] Filter out sensitive parameters from logs.
110
- - [#582] The Authorization HTTP header fields are now case insensitive.
111
- - [#583] Database connection bugfix in certain scenarios.
112
- - Testing improvements
113
-
114
-
115
- ## 2.1.1 - 2015-02-06
116
-
117
- - Remove `wildcard_redirect_url` option
118
- - [#481] Customize token flow OAuth expirations with a config lambda
119
- - [#568] TokensController: Memoize strategy.authorize_response result to enable
120
- subclasses to use the response object.
121
- - [#571] Fix database initialization issues in some configurations.
122
- - Documentation improvements
123
-
124
-
125
- ## 2.1.0 - 2015-01-13
126
-
127
- - [#540] Include `created_at` in response.
128
- - [#538] Check application-level scopes in client_credentials and password flow.
129
- - [5596227] Check application scopes in AccessToken when present. Fixes a bug in
130
- doorkeeper 2.0.0 and 2.0.1 referring to application specific scopes.
131
- - [#534] Internationalizes doorkeeper views.
132
- - [#545] Ensure there is a connection to the database before checking for
133
- missing columns
134
- - [#546] Use `Doorkeeper::` prefix when referencing `Application` to avoid
135
- possible application model name conflict.
136
- - [#538] Test with Rails ~> 4.2.
137
-
138
- ### Potentially backward incompatible changes
139
-
140
- - Enable by default `authorization_code` and `client_credentials` grant flows.
141
- Disables implicit and password grant flows by default.
142
- - [#510, #544, 722113f] Revoked refresh token response bugfix.
143
-
144
-
145
- ## 2.0.1 - 2014-12-17
146
-
147
- - [#525, #526, #527] Fix `ActiveRecord::NoDatabaseError` on gem load.
148
-
149
-
150
- ## 2.0.0 - 2014-12-16
151
-
152
- ### Backward incompatible changes
153
-
154
- - [#448] Removes `doorkeeper_for` helper. Now we use
155
- `before_action :doorkeeper_authorize!`.
156
- - [#469] Allow client applications to restrict the set of allowable scopes.
157
- Fixes #317. `oauth_applications` relation needs a new `scopes` string column,
158
- non nullable, which defaults to an empty string. To add the column run:
159
-
160
- ```
161
- rails generate doorkeeper:application_scopes
162
- ```
163
-
164
- If you’d rather do it by hand, your ActiveRecord migration should contain:
165
-
166
- ```ruby
167
- add_column :oauth_applications, :scopes, :string, null: false, default: ‘’
168
- ```
169
-
170
- ### Removed deprecations
171
-
172
- - Removes `test_redirect_uri` option. It is now called `native_redirect_uri`.
173
- - [#446] Removes `mount Doorkeeper::Engine`. Now we use `use_doorkeeper`.
174
-
175
- ### Others
176
-
177
- - [#484] Performance improvement - avoid performing order_by when not required.
178
- - [#450] When password is invalid in Password Credentials Grant, Doorkeeper
179
- returned 'invalid_resource_owner' instead of 'invalid_grant', as the spec
180
- declares. Fixes #444.
181
- - [#452] Allows `revoked_at` to be set in the future, for future expiry.
182
- Rationale: https://github.com/doorkeeper-gem/doorkeeper/pull/452#issuecomment-51431459
183
- - [#480] For Implicit grant flow, access tokens can now be reused. Fixes #421.
184
- - [#491] Reworks of @jasl's #454 and #478. ORM refactor that allows doorkeeper
185
- to be extended more easily with unsupported ORMs. It also marks the boundaries
186
- between shared model code and ORM specifics inside of the gem.
187
- - [#496] Tests with Rails 4.2.
188
- - [#489] Adds `force_ssl_in_redirect_uri` to force the usage of the HTTPS
189
- protocol in non-native redirect uris.
190
- - [#516] SECURITY: Adds `protect_from_forgery` to `Doorkeeper::ApplicationController`
191
- - [#518] Fix random failures in mongodb.
192
-
193
- ---
194
-
195
- ## 1.4.2 - 2015-03-02
196
-
197
- - [#576] Filter out sensitive parameters from logs
198
-
199
- ## 1.4.1 - 2014-12-17
200
-
201
- - [#516] SECURITY: Adds `protect_from_forgery` to `Doorkeeper::ApplicationController`
202
-
203
- ## 1.4.0 - 2014-07-31
204
-
205
- - internals
206
- - [#427] Adds specs expectations.
207
- - [#428] Error response refactor.
208
- - [#417] Moves token validation into Access Token class.
209
- - [#439] Removes redundant module includes.
210
- - [#443] TokensController and TokenInfoController inherit from ActionController::Metal
211
- - bug
212
- - [#418] fixes #243, requests with insufficient scope now respond 403 instead
213
- of 401. (API change)
214
- - [#438] fixes #398, native redirect for implicit token grant bug.
215
- - [#440] namespace fixes
216
- - enhancements
217
- - [#432] Keeps query parameters
218
-
219
- ## 1.3.1 - 2014-07-06
220
-
221
- - enhancements
222
- - [#405] Adds facade to more easily get the token from a request in a route
223
- constraint.
224
- - [#415] Extend Doorkeeper TokenResponse with an `after_successful_response`
225
- callback that allows handling of `response` object.
226
- - internals
227
- - [#409] Deprecates `test_redirect_uri` in favor of `native_redirect_uri`.
228
- See discussion in: [#351].
229
- - [#411] Clean rspec deprecations. General test improvements.
230
- - [#412] rspec line width can go longer than 80 (hound CI config).
231
- - bug
232
- - [#413] fixes #340, routing scope is now taken into account in redirect.
233
- - [#401] and [#425] application is not required any longer for access_token.
234
-
235
- ## 1.3.0 - 2014-05-23
236
-
237
- - enhancements
238
- - [#387] Adds reuse_access_token configuration option.
239
-
240
- ## 1.2.0 - 2014-05-02
241
-
242
- - enhancements
243
- - [#376] Allow users to enable basic header authorization for access tokens.
244
- - [#374] Token revocation implementation [RFC 7009]
245
- - [#295] Only enable specific grant flows.
246
- - internals
247
- - [#381] Locale source fix.
248
- - [#380] Renames `errors_for` to `doorkeeper_errors_for`.
249
- - [#390] Style adjustments in accordance with Ruby Style Guide form
250
- Thoughtbot.
251
-
252
- ## 1.1.0 - 2014-03-29
253
-
254
- - enhancements
255
- - [#336] mongoid4 support.
256
- - [#372] Allow users to set ActiveRecord table_name_prefix/suffix options
257
- - internals
258
- - [#343] separate OAuth's admin and user end-point to different layouts, upgrade theme to Bootstrap 3.1.
259
- - [#348] Move render_options in filter after `@error` has been set
260
-
261
- ## 1.0.0 - 2014-01-13
262
-
263
- - bug (spec)
264
- - [#228] token response `expires_in` value is now in seconds, relative to
265
- request time
266
- - [#296] client is optional for password grant type.
267
- - [#319] If client credentials are present on password grant type they are validated
268
- - [#326] If client credentials are present in refresh token they are validated
269
- - [#326] If authenticated client does not match original client that
270
- obtained a refresh token it responds `invalid_grant` instead of
271
- `invalid_client`. Previous usage was invalid according to Section 5.2 of
272
- the spec.
273
- - [#329] access tokens' `scopes` string wa being compared against
274
- `default_scopes` symbols, always unauthorizing.
275
- - [#318] Include "WWW-Authenticate" header with Unauthorized responses
276
- - enhancements
277
- - [#293] Adds ActionController::Instrumentation in TokensController
278
- - [#298] Support for multiple redirect_uris added.
279
- - [#313] `AccessToken.revoke_all_for` actually revokes all non-revoked
280
- tokens for an application/owner instead of deleting them.
281
- - [#333] Rails 4.1 support
282
- - internals
283
- - Removes jQuery dependency [fixes #300] [PR #312 is related]
284
- - [#294] Client uid and secret will be generated only if not present.
285
- - [#316] Test warnings addressed.
286
- - [#338] Rspec 3 syntax.
287
-
288
- ---
289
-
290
- ## 0.7.4 - 2013-12-01
291
-
292
- - bug
293
- - Symbols instead of strings for user input.
294
-
295
- ## 0.7.3 - 2013-10-04
296
-
297
- - enhancements
298
- - [#204] Allow to overwrite scope in routes
299
- - internals
300
- - Returns only present keys in Token Response (may imply a backwards
301
- incompatible change). https://github.com/doorkeeper-gem/doorkeeper/issues/220
302
- - bug
303
- - [#290] Support for Rails 4 when 'protected_attributes' gem is present.
304
-
305
- ## 0.7.2 - 2013-09-11
306
-
307
- - enhancements
308
- - [#272] Allow issuing multiple access_tokens for one user/application for multiple devices
309
- - [#170] Increase length of allowed redirect URIs
310
- - [#239] Do not try to load unavailable Request class for the current phase.
311
- - [#273] Relax jquery-rails gem dependency
312
-
313
- ## 0.7.1 - 2013-08-30
314
-
315
- - bug
316
- - [#269] Rails 3.2 raised `ActiveModel::MassAssignmentSecurity::Error`.
317
-
318
- ## 0.7.0 - 2013-08-21
319
-
320
- - enhancements
321
- - [#229] Rails 4!
322
- - internals
323
- - [#203] Changing table name to be specific in column_names_with_table
324
- - [#215] README update
325
- - [#227] Use Rails.config.paths["config/routes"] instead of assuming "config/routes.rb" exists
326
- - [#262] Add jquery as gem dependency
327
- - [#263] Add a configuration for ActiveRecord.establish_connection
328
- - Deprecation and Ruby warnings (PRs merged outside of GitHub).
329
-
330
- ## 0.6.7 - 2013-01-13
331
-
332
- - internals
333
- - [#188] Add IDs to the show views for integration testing [@egtann](https://github.com/egtann)
334
-
335
- ## 0.6.6 - 2013-01-04
336
-
337
- - enhancements
338
- - [#187] Raise error if configuration is not set
339
-
340
- ## 0.6.5 - 2012-12-26
341
-
342
- - enhancements
343
- - [#184] Vendor the Bootstrap CSS [@tylerhunt](https://github.com/tylerhunt)
344
-
345
- ## 0.6.4 - 2012-12-15
346
-
347
- - bug
348
- - [#180] Add localization to authorized_applications destroy notice [@aalvarado](https://github.com/aalvarado)
349
-
350
- ## 0.6.3 - 2012-12-07
351
-
352
- - bugfixes
353
- - [#163] Error response content-type header should be application/json [@ggayan](https://github.com/ggayan)
354
- - [#175] Make token.expires_in_seconds return nil when expires_in is nil [@miyagawa](https://github.com/miyagawa)
355
- - enhancements
356
- - [#166, #172, #174] Behavior to automatically authorize based on a configured proc
357
- - internals
358
- - [#168] Using expectation syntax for controller specs [@rdsoze](https://github.com/rdsoze)
359
-
360
- ## 0.6.2 - 2012-11-10
361
-
362
- - bugfixes
363
- - [#162] Remove ownership columns from base migration template [@rdsoze](https://github.com/rdsoze)
364
-
365
- ## 0.6.1 - 2012-11-07
366
-
367
- - bugfixes
368
- - [#160] Removed |routes| argument from initializer authenticator blocks
369
- - documentation
370
- - [#160] Fixed description of context of authenticator blocks
371
-
372
- ## 0.6.0 - 2012-11-05
373
-
374
- - enhancements
375
- - Mongoid `orm` configuration accepts only :mongoid2 or :mongoid3
376
- - Authorization endpoint does not redirect in #new action anymore. It wasn't specified by OAuth spec
377
- - TokensController now inherits from ActionController::Metal. There might be performance upgrades
378
- - Add link to authorization in Applications scaffold
379
- - [#116] MongoMapper support [@carols10cents](https://github.com/carols10cents)
380
- - [#122] Mongoid3 support [@petergoldstein](https://github.com/petergoldstein)
381
- - [#150] Introduce test redirect uri for applications
382
- - bugfixes
383
- - [#157] Response token status should be `:ok`, not `:success` [@theycallmeswift](https://github.com/theycallmeswift)
384
- - [#159] Remove ActionView::Base.field_error_proc override (fixes #145)
385
- - internals
386
- - Update development dependencies
387
- - Several refactorings
388
- - Rails/ORM are easily swichable with env vars (rails and orm)
389
- - Travis now tests against Mongoid v2
390
-
391
- ## 0.5.0 - 2012-10-20
392
-
393
- Official support for rubinius was removed.
394
-
395
- - enhancements
396
- - Configure the way access token is retrieved from request (default to bearer header)
397
- - Authorization Code expiration time is now configurable
398
- - Add support for mongoid
399
- - [#78, #128, #137, #138] Application Ownership
400
- - [#92] Allow users to skip controllers
401
- - [#99] Remove deprecated warnings for data-* attributes [@towerhe](https://github.com/towerhe)
402
- - [#101] Return existing access_token for PasswordAccessTokenRequest [@benoist](https://github.com/benoist)
403
- - [#104] Changed access token scopes example code to default_scopes and optional_scopes [@amkirwan](https://github.com/amkirwan)
404
- - [#107] Fix typos in initializer
405
- - [#123] i18n for validator, flash messages [@petergoldstein](https://github.com/petergoldstein)
406
- - [#140] ActiveRecord is the default value for the ORM [@petergoldstein](https://github.com/petergoldstein)
407
- - internals
408
- - [#112, #120] Replacing update_attribute with update_column to eliminate deprecation warnings [@rmoriz](https://github.com/rmoriz), [@petergoldstein](https://github.com/petergoldstein)
409
- - [#121] Updating all development dependencies to recent versions. [@petergoldstein](https://github.com/petergoldstein)
410
- - [#144] Adding MongoDB dependency to .travis.yml [@petergoldstein](https://github.com/petergoldstein)
411
- - [#143] Displays errors for unconfigured error messages [@timgaleckas](https://github.com/timgaleckas)
412
- - bugfixes
413
- - [#102] Not returning 401 when access token generation fails [@cslew](https://github.com/cslew)
414
- - [#125] Doorkeeper is using ActiveRecord version of as_json in ORM agnostic code [@petergoldstein](https://github.com/petergoldstein)
415
- - [#142] Prevent double submission of password based authentication [@bdurand](https://github.com/bdurand)
416
- - documentation
417
- - [#141] Add rack-cors middleware to readme [@gottfrois](https://github.com/gottfrois)
418
-
419
- ## 0.4.2 - 2012-06-05
420
-
421
- - bugfixes:
422
- - [#94] Uninitialized Constant in Password Flow
423
-
424
- ## 0.4.1 - 2012-06-02
425
-
426
- - enhancements:
427
- - Backport: Move doorkeeper_for extension to Filter helper
428
-
429
- ## 0.4.0 - 2012-05-26
430
-
431
- - deprecation
432
- - Deprecate authorization_scopes
433
- - database changes
434
- - AccessToken#resource_owner_id is not nullable
435
- - enhancements
436
- - [#83] Add Resource Owner Password Credentials flow [@jaimeiniesta](https://github.com/jaimeiniesta)
437
- - [#76] Allow token expiration to be disabled [@mattgreen](https://github.com/mattgreen)
438
- - [#89] Configure the way client credentials are retrieved from request
439
- - [#b6470a] Add Client Credentials flow
440
- - internals
441
- - [#2ece8d, #f93778] Introduce Client and ErrorResponse classes
442
-
443
- ## 0.3.4 - 2012-05-24
444
-
445
- - Fix attr_accessible for rails 3.2.x
446
-
447
- ## 0.3.3 - 2012-05-07
448
-
449
- - [#86] shrink gem package size
450
-
451
- ## 0.3.2 - 2012-04-29
452
-
453
- - enhancements
454
- - [#54] Ignore Authorization: headers that are not Bearer [@miyagawa](https://github.com/miyagawa)
455
- - [#58, #64] Add destroy action to applications endpoint [@jaimeiniesta](https://github.com/jaimeiniesta), [@davidfrey](https://github.com/davidfrey)
456
- - [#63] TokensController responds with `401 unauthorized` [@jaimeiniesta](https://github.com/jaimeiniesta)
457
- - [#67, #72] Fix for mass-assignment [@cicloid](https://github.com/cicloid)
458
- - internals
459
- - [#49] Add Gemnasium status image to README [@laserlemon](https://github.com/laserlemon)
460
- - [#50] Fix typos [@tomekw](https://github.com/tomekw)
461
- - [#51] Updated the factory_girl_rails dependency, fix expires_in response which returned a float number instead of integer [@antekpiechnik](https://github.com/antekpiechnik)
462
- - [#62] Typos, .gitignore [@jaimeiniesta](https://github.com/jaimeiniesta)
463
- - [#65] Change _path redirections to _url redirections [@jaimeiniesta](https://github.com/jaimeiniesta)
464
- - [#75] Fix unknown method #authenticate_admin! [@mattgreen](https://github.com/mattgreen)
465
- - Remove application link in authorized app view
466
-
467
- ## 0.3.1 - 2012-02-17
468
-
469
- - enhancements
470
- - [#48] Add if, else options to doorkeeper_for
471
- - Add views generator
472
- - internals
473
- - Namespace models
474
-
475
- ## 0.3.0 - 2012-02-11
476
-
477
- - enhancements
478
- - [#17, #31] Add support for client credentials in basic auth header [@GoldsteinTechPartners](https://github.com/GoldsteinTechPartners)
479
- - [#28] Add indices to migration [@GoldsteinTechPartners](https://github.com/GoldsteinTechPartners)
480
- - [#29] Allow doorkeeper to run with rails 3.2 [@john-griffin](https://github.com/john-griffin)
481
- - [#30] Improve client's redirect uri validation [@GoldsteinTechPartners](https://github.com/GoldsteinTechPartners)
482
- - [#32] Add token (implicit grant) flow [@GoldsteinTechPartners](https://github.com/GoldsteinTechPartners)
483
- - [#34] Add support for custom unathorized responses [@GoldsteinTechPartners](https://github.com/GoldsteinTechPartners)
484
- - [#36] Remove repetitions from the Authorised Applications view [@carvil](https://github.com/carvil)
485
- - When user revoke an application, all tokens for that application are revoked
486
- - Error messages now can be translated
487
- - Install generator copies the error messages localization file
488
- - internals
489
- - Fix deprecation warnings in ActiveSupport::Base64
490
- - Remove deprecation in doorkeeper_for that handles hash arguments
491
- - Depends on railties instead of whole rails framework
492
- - CI now integrates with rails 3.1 and 3.2
493
-
494
- ## 0.2.0 - 2011-12-17
495
-
496
- - enhancements
497
- - [#4] Add authorized applications endpoint
498
- - [#5, #11] Add access token scopes
499
- - [#10] Add access token expiration by default
500
- - [#9, #12] Add refresh token flow
501
- - internals
502
- - [#7] Improve configuration options with :default
503
- - Improve configuration options with :builder
504
- - Refactor config class
505
- - Improve coverage of authorization request integration
506
- - bug fixes
507
- - [#6, #20] Fix access token response headers
508
- - Fix issue with state parameter
509
- - deprecation
510
- - deprecate :only and :except options in doorkeeper_for
511
-
512
- ## 0.1.1 - 2011-11-30
513
-
514
- - enhancements
515
- - [#3] Authorization code must be short lived and single use
516
- - [#2] Improve views provided by doorkeeper
517
- - [#1] Skips authorization form if the client has been authorized by the resource owner
518
- - Improve readme
519
- - bugfixes
520
- - Fix issue when creating the access token (wrong client id)
521
-
522
- ## 0.1.0 - 2011-11-25
523
-
524
- - Authorization Code flow
525
- - OAuth applications endpoint
data/RELEASING.md DELETED
@@ -1,17 +0,0 @@
1
- # Releasing doorkeeper
2
-
3
- 1. Update `lib/doorkeeper/version.rb` file accordingly.
4
- 2. Update `NEWS.md` to reflect the changes since last release.
5
- 3. Commit changes. There shouldn’t be code changes, and thus CI doesn’t need to
6
- run, you can then add “[ci skip]” to the commit message.
7
- 4. Tag the release: `git tag vVERSION -m "Release vVERSION"`
8
- 5. Push changes: `git push && git push --tags`
9
- 6. Build and publish the gem:
10
-
11
- ```bash
12
- gem build doorkeeper.gemspec
13
- gem push doorkeeper-*.gem
14
- ```
15
-
16
- 7. Announce the new release, making sure to say “thank you” to the contributors
17
- who helped shape this version!
data/Rakefile DELETED
@@ -1,20 +0,0 @@
1
- require 'bundler/setup'
2
- require 'rspec/core/rake_task'
3
-
4
- desc 'Default: run specs.'
5
- task :default => :spec
6
-
7
- desc "Run all specs"
8
- RSpec::Core::RakeTask.new(:spec) do |config|
9
- config.verbose = false
10
- end
11
-
12
- namespace :doorkeeper do
13
- desc "Install doorkeeper in dummy app"
14
- task :install do
15
- cd 'spec/dummy'
16
- system 'bundle exec rails g doorkeeper:install --force'
17
- end
18
- end
19
-
20
- Bundler::GemHelper.install_tasks
@@ -1,34 +0,0 @@
1
- require 'uri'
2
-
3
- class RedirectUriValidator < ActiveModel::EachValidator
4
- def self.native_redirect_uri
5
- Doorkeeper.configuration.native_redirect_uri
6
- end
7
-
8
- def validate_each(record, attribute, value)
9
- if value.blank?
10
- record.errors.add(attribute, :blank)
11
- else
12
- value.split.each do |val|
13
- uri = ::URI.parse(val)
14
- return if native_redirect_uri?(uri)
15
- record.errors.add(attribute, :fragment_present) unless uri.fragment.nil?
16
- record.errors.add(attribute, :relative_uri) if uri.scheme.nil? || uri.host.nil?
17
- record.errors.add(attribute, :secured_uri) if invalid_ssl_uri?(uri)
18
- end
19
- end
20
- rescue URI::InvalidURIError
21
- record.errors.add(attribute, :invalid_uri)
22
- end
23
-
24
- private
25
-
26
- def native_redirect_uri?(uri)
27
- self.class.native_redirect_uri.present? && uri.to_s == self.class.native_redirect_uri.to_s
28
- end
29
-
30
- def invalid_ssl_uri?(uri)
31
- forces_ssl = Doorkeeper.configuration.force_ssl_in_redirect_uri
32
- forces_ssl && uri.try(:scheme) == 'http'
33
- end
34
- end