doorkeeper 5.1.0 → 5.3.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.
Files changed (163) hide show
  1. checksums.yaml +4 -4
  2. data/Appraisals +3 -3
  3. data/CHANGELOG.md +881 -0
  4. data/CONTRIBUTING.md +11 -9
  5. data/Dangerfile +2 -2
  6. data/Dockerfile +29 -0
  7. data/Gemfile +4 -3
  8. data/NEWS.md +1 -814
  9. data/README.md +11 -3
  10. data/RELEASING.md +6 -5
  11. data/app/controllers/doorkeeper/application_controller.rb +2 -2
  12. data/app/controllers/doorkeeper/application_metal_controller.rb +3 -2
  13. data/app/controllers/doorkeeper/applications_controller.rb +1 -0
  14. data/app/controllers/doorkeeper/authorizations_controller.rb +16 -9
  15. data/app/controllers/doorkeeper/authorized_applications_controller.rb +2 -2
  16. data/app/controllers/doorkeeper/tokens_controller.rb +32 -9
  17. data/app/views/doorkeeper/applications/_form.html.erb +0 -6
  18. data/app/views/doorkeeper/applications/show.html.erb +1 -1
  19. data/config/locales/en.yml +8 -2
  20. data/doorkeeper.gemspec +9 -1
  21. data/gemfiles/rails_5_0.gemfile +3 -2
  22. data/gemfiles/rails_5_1.gemfile +3 -2
  23. data/gemfiles/rails_5_2.gemfile +3 -2
  24. data/gemfiles/rails_6_0.gemfile +4 -3
  25. data/gemfiles/rails_master.gemfile +3 -2
  26. data/lib/doorkeeper/config/option.rb +13 -7
  27. data/lib/doorkeeper/config.rb +157 -42
  28. data/lib/doorkeeper/errors.rb +13 -18
  29. data/lib/doorkeeper/grape/helpers.rb +6 -2
  30. data/lib/doorkeeper/helpers/controller.rb +28 -7
  31. data/lib/doorkeeper/models/access_grant_mixin.rb +7 -6
  32. data/lib/doorkeeper/models/access_token_mixin.rb +99 -20
  33. data/lib/doorkeeper/models/application_mixin.rb +3 -3
  34. data/lib/doorkeeper/models/concerns/ownership.rb +1 -1
  35. data/lib/doorkeeper/models/concerns/reusable.rb +1 -1
  36. data/lib/doorkeeper/models/concerns/revocable.rb +0 -27
  37. data/lib/doorkeeper/oauth/authorization/code.rb +12 -14
  38. data/lib/doorkeeper/oauth/authorization/token.rb +10 -7
  39. data/lib/doorkeeper/oauth/authorization_code_request.rb +31 -15
  40. data/lib/doorkeeper/oauth/base_request.rb +10 -4
  41. data/lib/doorkeeper/oauth/client.rb +7 -8
  42. data/lib/doorkeeper/oauth/client_credentials/creator.rb +23 -2
  43. data/lib/doorkeeper/oauth/client_credentials/issuer.rb +7 -7
  44. data/lib/doorkeeper/oauth/client_credentials/{validation.rb → validator.rb} +10 -2
  45. data/lib/doorkeeper/oauth/client_credentials_request.rb +1 -1
  46. data/lib/doorkeeper/oauth/code_request.rb +5 -11
  47. data/lib/doorkeeper/oauth/code_response.rb +4 -4
  48. data/lib/doorkeeper/oauth/error.rb +1 -1
  49. data/lib/doorkeeper/oauth/error_response.rb +6 -6
  50. data/lib/doorkeeper/oauth/helpers/scope_checker.rb +7 -5
  51. data/lib/doorkeeper/oauth/helpers/unique_token.rb +8 -5
  52. data/lib/doorkeeper/oauth/helpers/uri_checker.rb +19 -5
  53. data/lib/doorkeeper/oauth/invalid_request_response.rb +43 -0
  54. data/lib/doorkeeper/oauth/invalid_token_response.rb +5 -2
  55. data/lib/doorkeeper/oauth/nonstandard.rb +39 -0
  56. data/lib/doorkeeper/oauth/password_access_token_request.rb +9 -4
  57. data/lib/doorkeeper/oauth/pre_authorization.rb +76 -38
  58. data/lib/doorkeeper/oauth/refresh_token_request.rb +17 -14
  59. data/lib/doorkeeper/oauth/token.rb +2 -2
  60. data/lib/doorkeeper/oauth/token_introspection.rb +26 -16
  61. data/lib/doorkeeper/oauth/token_request.rb +4 -18
  62. data/lib/doorkeeper/orm/active_record/access_grant.rb +4 -43
  63. data/lib/doorkeeper/orm/active_record/access_token.rb +4 -35
  64. data/lib/doorkeeper/orm/active_record/application.rb +5 -83
  65. data/lib/doorkeeper/orm/active_record/mixins/access_grant.rb +53 -0
  66. data/lib/doorkeeper/orm/active_record/mixins/access_token.rb +47 -0
  67. data/lib/doorkeeper/orm/active_record/mixins/application.rb +128 -0
  68. data/lib/doorkeeper/orm/active_record/redirect_uri_validator.rb +61 -0
  69. data/lib/doorkeeper/orm/active_record.rb +21 -6
  70. data/lib/doorkeeper/rails/helpers.rb +4 -4
  71. data/lib/doorkeeper/rails/routes.rb +5 -7
  72. data/lib/doorkeeper/rake/db.rake +3 -3
  73. data/lib/doorkeeper/request/authorization_code.rb +5 -3
  74. data/lib/doorkeeper/request/client_credentials.rb +2 -2
  75. data/lib/doorkeeper/request/password.rb +2 -2
  76. data/lib/doorkeeper/request/refresh_token.rb +3 -3
  77. data/lib/doorkeeper/request.rb +7 -12
  78. data/lib/doorkeeper/server.rb +3 -7
  79. data/lib/doorkeeper/stale_records_cleaner.rb +6 -2
  80. data/lib/doorkeeper/version.rb +1 -1
  81. data/lib/doorkeeper.rb +6 -3
  82. data/lib/generators/doorkeeper/application_owner_generator.rb +1 -1
  83. data/lib/generators/doorkeeper/confidential_applications_generator.rb +1 -1
  84. data/lib/generators/doorkeeper/migration_generator.rb +1 -1
  85. data/lib/generators/doorkeeper/pkce_generator.rb +1 -1
  86. data/lib/generators/doorkeeper/previous_refresh_token_generator.rb +7 -7
  87. data/lib/generators/doorkeeper/templates/initializer.rb +149 -33
  88. data/lib/generators/doorkeeper/templates/migration.rb.erb +4 -1
  89. data/spec/controllers/application_metal_controller_spec.rb +1 -1
  90. data/spec/controllers/applications_controller_spec.rb +95 -1
  91. data/spec/controllers/authorizations_controller_spec.rb +156 -75
  92. data/spec/controllers/protected_resources_controller_spec.rb +28 -20
  93. data/spec/controllers/token_info_controller_spec.rb +1 -1
  94. data/spec/controllers/tokens_controller_spec.rb +206 -38
  95. data/spec/dummy/config/application.rb +3 -1
  96. data/spec/dummy/config/initializers/doorkeeper.rb +54 -9
  97. data/spec/dummy/db/migrate/20151223192035_create_doorkeeper_tables.rb +3 -3
  98. data/spec/dummy/db/migrate/20160320211015_add_previous_refresh_token_to_access_tokens.rb +1 -1
  99. data/spec/dummy/db/migrate/20180210183654_add_confidential_to_applications.rb +1 -1
  100. data/spec/generators/install_generator_spec.rb +1 -1
  101. data/spec/generators/previous_refresh_token_generator_spec.rb +2 -2
  102. data/spec/helpers/doorkeeper/dashboard_helper_spec.rb +1 -1
  103. data/spec/lib/config_spec.rb +104 -7
  104. data/spec/lib/doorkeeper_spec.rb +1 -1
  105. data/spec/lib/models/revocable_spec.rb +3 -3
  106. data/spec/lib/oauth/authorization_code_request_spec.rb +129 -115
  107. data/spec/lib/oauth/base_request_spec.rb +154 -135
  108. data/spec/lib/oauth/base_response_spec.rb +27 -29
  109. data/spec/lib/oauth/client/credentials_spec.rb +1 -1
  110. data/spec/lib/oauth/client_credentials/creator_spec.rb +43 -3
  111. data/spec/lib/oauth/client_credentials/issuer_spec.rb +12 -12
  112. data/spec/lib/oauth/client_credentials/validation_spec.rb +4 -4
  113. data/spec/lib/oauth/client_credentials_integration_spec.rb +16 -18
  114. data/spec/lib/oauth/client_credentials_request_spec.rb +78 -80
  115. data/spec/lib/oauth/client_spec.rb +26 -26
  116. data/spec/lib/oauth/code_request_spec.rb +34 -35
  117. data/spec/lib/oauth/code_response_spec.rb +21 -25
  118. data/spec/lib/oauth/error_response_spec.rb +42 -44
  119. data/spec/lib/oauth/error_spec.rb +12 -14
  120. data/spec/lib/oauth/forbidden_token_response_spec.rb +11 -13
  121. data/spec/lib/oauth/helpers/scope_checker_spec.rb +30 -18
  122. data/spec/lib/oauth/helpers/uri_checker_spec.rb +17 -2
  123. data/spec/lib/oauth/invalid_request_response_spec.rb +73 -0
  124. data/spec/lib/oauth/invalid_token_response_spec.rb +32 -34
  125. data/spec/lib/oauth/password_access_token_request_spec.rb +145 -147
  126. data/spec/lib/oauth/pre_authorization_spec.rb +161 -153
  127. data/spec/lib/oauth/refresh_token_request_spec.rb +138 -138
  128. data/spec/lib/oauth/scopes_spec.rb +104 -106
  129. data/spec/lib/oauth/token_request_spec.rb +117 -110
  130. data/spec/lib/oauth/token_response_spec.rb +71 -73
  131. data/spec/lib/oauth/token_spec.rb +121 -123
  132. data/spec/lib/server_spec.rb +0 -12
  133. data/spec/models/doorkeeper/access_grant_spec.rb +21 -4
  134. data/spec/models/doorkeeper/access_token_spec.rb +42 -11
  135. data/spec/models/doorkeeper/application_spec.rb +114 -77
  136. data/spec/requests/applications/applications_request_spec.rb +1 -1
  137. data/spec/requests/endpoints/authorization_spec.rb +26 -8
  138. data/spec/requests/endpoints/token_spec.rb +1 -1
  139. data/spec/requests/flows/authorization_code_errors_spec.rb +1 -0
  140. data/spec/requests/flows/authorization_code_spec.rb +123 -45
  141. data/spec/requests/flows/client_credentials_spec.rb +38 -0
  142. data/spec/requests/flows/implicit_grant_errors_spec.rb +22 -10
  143. data/spec/requests/flows/implicit_grant_spec.rb +9 -8
  144. data/spec/requests/flows/password_spec.rb +67 -10
  145. data/spec/requests/flows/refresh_token_spec.rb +20 -20
  146. data/spec/requests/flows/revoke_token_spec.rb +37 -23
  147. data/spec/spec_helper.rb +1 -4
  148. data/spec/support/doorkeeper_rspec.rb +1 -1
  149. data/spec/support/helpers/request_spec_helper.rb +14 -2
  150. data/spec/support/shared/controllers_shared_context.rb +33 -23
  151. data/spec/validators/redirect_uri_validator_spec.rb +41 -16
  152. metadata +19 -16
  153. data/.coveralls.yml +0 -1
  154. data/.github/ISSUE_TEMPLATE.md +0 -25
  155. data/.github/PULL_REQUEST_TEMPLATE.md +0 -17
  156. data/.gitignore +0 -20
  157. data/.gitlab-ci.yml +0 -16
  158. data/.hound.yml +0 -3
  159. data/.rspec +0 -1
  160. data/.rubocop.yml +0 -50
  161. data/.travis.yml +0 -35
  162. data/app/validators/redirect_uri_validator.rb +0 -50
  163. data/spec/support/http_method_shim.rb +0 -29
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: 5.1.0
4
+ version: 5.3.0
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: 2019-04-17 00:00:00.000000000 Z
14
+ date: 2020-01-29 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: railties
@@ -174,19 +174,12 @@ executables: []
174
174
  extensions: []
175
175
  extra_rdoc_files: []
176
176
  files:
177
- - ".coveralls.yml"
178
- - ".github/ISSUE_TEMPLATE.md"
179
- - ".github/PULL_REQUEST_TEMPLATE.md"
180
- - ".gitignore"
181
- - ".gitlab-ci.yml"
182
- - ".hound.yml"
183
- - ".rspec"
184
- - ".rubocop.yml"
185
- - ".travis.yml"
186
177
  - Appraisals
178
+ - CHANGELOG.md
187
179
  - CODE_OF_CONDUCT.md
188
180
  - CONTRIBUTING.md
189
181
  - Dangerfile
182
+ - Dockerfile
190
183
  - Gemfile
191
184
  - MIT-LICENSE
192
185
  - NEWS.md
@@ -205,7 +198,6 @@ files:
205
198
  - app/controllers/doorkeeper/token_info_controller.rb
206
199
  - app/controllers/doorkeeper/tokens_controller.rb
207
200
  - app/helpers/doorkeeper/dashboard_helper.rb
208
- - app/validators/redirect_uri_validator.rb
209
201
  - app/views/doorkeeper/applications/_delete_form.html.erb
210
202
  - app/views/doorkeeper/applications/_form.html.erb
211
203
  - app/views/doorkeeper/applications/edit.html.erb
@@ -258,7 +250,7 @@ files:
258
250
  - lib/doorkeeper/oauth/client/credentials.rb
259
251
  - lib/doorkeeper/oauth/client_credentials/creator.rb
260
252
  - lib/doorkeeper/oauth/client_credentials/issuer.rb
261
- - lib/doorkeeper/oauth/client_credentials/validation.rb
253
+ - lib/doorkeeper/oauth/client_credentials/validator.rb
262
254
  - lib/doorkeeper/oauth/client_credentials_request.rb
263
255
  - lib/doorkeeper/oauth/code_request.rb
264
256
  - lib/doorkeeper/oauth/code_response.rb
@@ -268,7 +260,9 @@ files:
268
260
  - lib/doorkeeper/oauth/helpers/scope_checker.rb
269
261
  - lib/doorkeeper/oauth/helpers/unique_token.rb
270
262
  - lib/doorkeeper/oauth/helpers/uri_checker.rb
263
+ - lib/doorkeeper/oauth/invalid_request_response.rb
271
264
  - lib/doorkeeper/oauth/invalid_token_response.rb
265
+ - lib/doorkeeper/oauth/nonstandard.rb
272
266
  - lib/doorkeeper/oauth/password_access_token_request.rb
273
267
  - lib/doorkeeper/oauth/pre_authorization.rb
274
268
  - lib/doorkeeper/oauth/refresh_token_request.rb
@@ -281,6 +275,10 @@ files:
281
275
  - lib/doorkeeper/orm/active_record/access_grant.rb
282
276
  - lib/doorkeeper/orm/active_record/access_token.rb
283
277
  - lib/doorkeeper/orm/active_record/application.rb
278
+ - lib/doorkeeper/orm/active_record/mixins/access_grant.rb
279
+ - lib/doorkeeper/orm/active_record/mixins/access_token.rb
280
+ - lib/doorkeeper/orm/active_record/mixins/application.rb
281
+ - lib/doorkeeper/orm/active_record/redirect_uri_validator.rb
284
282
  - lib/doorkeeper/orm/active_record/stale_records_cleaner.rb
285
283
  - lib/doorkeeper/rails/helpers.rb
286
284
  - lib/doorkeeper/rails/routes.rb
@@ -402,6 +400,7 @@ files:
402
400
  - spec/lib/oauth/helpers/scope_checker_spec.rb
403
401
  - spec/lib/oauth/helpers/unique_token_spec.rb
404
402
  - spec/lib/oauth/helpers/uri_checker_spec.rb
403
+ - spec/lib/oauth/invalid_request_response_spec.rb
405
404
  - spec/lib/oauth/invalid_token_response_spec.rb
406
405
  - spec/lib/oauth/password_access_token_request_spec.rb
407
406
  - spec/lib/oauth/pre_authorization_spec.rb
@@ -448,7 +447,6 @@ files:
448
447
  - spec/support/helpers/model_helper.rb
449
448
  - spec/support/helpers/request_spec_helper.rb
450
449
  - spec/support/helpers/url_helper.rb
451
- - spec/support/http_method_shim.rb
452
450
  - spec/support/orm/active_record.rb
453
451
  - spec/support/shared/controllers_shared_context.rb
454
452
  - spec/support/shared/hashing_shared_context.rb
@@ -459,7 +457,12 @@ files:
459
457
  homepage: https://github.com/doorkeeper-gem/doorkeeper
460
458
  licenses:
461
459
  - MIT
462
- metadata: {}
460
+ metadata:
461
+ homepage_uri: https://github.com/doorkeeper-gem/doorkeeper
462
+ changelog_uri: https://github.com/doorkeeper-gem/doorkeeper/blob/master/CHANGELOG.md
463
+ source_code_uri: https://github.com/doorkeeper-gem/doorkeeper
464
+ bug_tracker_uri: https://github.com/doorkeeper-gem/doorkeeper/issues
465
+ documentation_uri: https://doorkeeper.gitbook.io/guides/
463
466
  post_install_message:
464
467
  rdoc_options: []
465
468
  require_paths:
@@ -563,6 +566,7 @@ test_files:
563
566
  - spec/lib/oauth/helpers/scope_checker_spec.rb
564
567
  - spec/lib/oauth/helpers/unique_token_spec.rb
565
568
  - spec/lib/oauth/helpers/uri_checker_spec.rb
569
+ - spec/lib/oauth/invalid_request_response_spec.rb
566
570
  - spec/lib/oauth/invalid_token_response_spec.rb
567
571
  - spec/lib/oauth/password_access_token_request_spec.rb
568
572
  - spec/lib/oauth/pre_authorization_spec.rb
@@ -609,7 +613,6 @@ test_files:
609
613
  - spec/support/helpers/model_helper.rb
610
614
  - spec/support/helpers/request_spec_helper.rb
611
615
  - spec/support/helpers/url_helper.rb
612
- - spec/support/http_method_shim.rb
613
616
  - spec/support/orm/active_record.rb
614
617
  - spec/support/shared/controllers_shared_context.rb
615
618
  - spec/support/shared/hashing_shared_context.rb
data/.coveralls.yml DELETED
@@ -1 +0,0 @@
1
- service_name: travis-ci
@@ -1,25 +0,0 @@
1
- ### Steps to reproduce
2
- What we need to do to see your problem or bug?
3
-
4
- The more detailed the issue, the more likely that we will fix it ASAP.
5
-
6
- Don't use GitHub issues for questions like "How can I do that?" —
7
- use [StackOverflow](https://stackoverflow.com/questions/tagged/doorkeeper)
8
- instead with the corresponding tag.
9
-
10
- ### Expected behavior
11
- Tell us what should happen
12
-
13
- ### Actual behavior
14
- Tell us what happens instead
15
-
16
- ### System configuration
17
- You can help us to understand your problem if you will share some very
18
- useful information about your project environment (don't forget to
19
- remove any confidential data if it exists).
20
-
21
- **Doorkeeper initializer**:
22
-
23
- **Ruby version**:
24
-
25
- **Gemfile.lock**:
@@ -1,17 +0,0 @@
1
- ### Summary
2
-
3
- Provide a general description of the code changes in your pull
4
- request... were there any bugs you had fixed? If so, mention them. If
5
- these bugs have open GitHub issues, be sure to tag them here as well,
6
- to keep the conversation linked together.
7
-
8
- ### Other Information
9
-
10
- If there's anything else that's important and relevant to your pull
11
- request, mention that information here. This could include
12
- benchmarks, or other information.
13
-
14
- If you are updating NEWS.md file or are asked to update it by reviewers,
15
- please add the changelog entry at the top of the file.
16
-
17
- Thanks for contributing to Doorkeeper project!
data/.gitignore DELETED
@@ -1,20 +0,0 @@
1
- .bundle/
2
- .rbx
3
- *.rbc
4
- log/*.log
5
- pkg/
6
- spec/dummy/db/*.sqlite3
7
- spec/dummy/log/*.log
8
- spec/dummy/tmp/
9
- spec/generators/tmp
10
- Gemfile.lock
11
- gemfiles/*.lock
12
- .rvmrc
13
- *.swp
14
- .idea
15
- /.yardoc/
16
- /_yardoc/
17
- /doc/
18
- /rdoc/
19
- coverage
20
- *.gem
data/.gitlab-ci.yml DELETED
@@ -1,16 +0,0 @@
1
- dependency_scanning:
2
- image: docker:stable
3
- variables:
4
- DOCKER_DRIVER: overlay2
5
- allow_failure: true
6
- services:
7
- - docker:stable-dind
8
- script:
9
- - export SP_VERSION=$(echo "$CI_SERVER_VERSION" | sed 's/^\([0-9]*\)\.\([0-9]*\).*/\1-\2-stable/')
10
- - docker run
11
- --env DEP_SCAN_DISABLE_REMOTE_CHECKS="${DEP_SCAN_DISABLE_REMOTE_CHECKS:-false}"
12
- --volume "$PWD:/code"
13
- --volume /var/run/docker.sock:/var/run/docker.sock
14
- "registry.gitlab.com/gitlab-org/security-products/dependency-scanning:$SP_VERSION" /code
15
- artifacts:
16
- paths: [gl-dependency-scanning-report.json]
data/.hound.yml DELETED
@@ -1,3 +0,0 @@
1
- rubocop:
2
- config_file: .rubocop.yml
3
- version: 0.64.0
data/.rspec DELETED
@@ -1 +0,0 @@
1
- --colour
data/.rubocop.yml DELETED
@@ -1,50 +0,0 @@
1
- AllCops:
2
- TargetRubyVersion: 2.4
3
- Exclude:
4
- - "spec/dummy/db/*"
5
- - "spec/dummy/config/*"
6
- - "Dangerfile"
7
- - "gemfiles/*.gemfile"
8
-
9
- Metrics/BlockLength:
10
- Exclude:
11
- - spec/**/*
12
- - lib/doorkeeper/rake/*
13
-
14
- Metrics/LineLength:
15
- Exclude:
16
- - spec/**/*
17
- Max: 100
18
-
19
- Metrics/MethodLength:
20
- Exclude:
21
- - spec/dummy/db/*
22
-
23
- Style/StringLiterals:
24
- EnforcedStyle: double_quotes
25
- Style/StringLiteralsInInterpolation:
26
- EnforcedStyle: double_quotes
27
-
28
- Style/FrozenStringLiteralComment:
29
- Enabled: true
30
-
31
- Style/TrailingCommaInHashLiteral:
32
- EnforcedStyleForMultiline: consistent_comma
33
- Style/TrailingCommaInArrayLiteral:
34
- EnforcedStyleForMultiline: consistent_comma
35
-
36
- Style/SymbolArray:
37
- MinSize: 3
38
- Style/WordArray:
39
- MinSize: 3
40
-
41
- Style/ClassAndModuleChildren:
42
- Exclude:
43
- - spec/**/*
44
-
45
- Layout/MultilineMethodCallIndentation:
46
- EnforcedStyle: indented
47
- Layout/TrailingBlankLines:
48
- Enabled: true
49
- Layout/DotPosition:
50
- EnforcedStyle: leading
data/.travis.yml DELETED
@@ -1,35 +0,0 @@
1
- language: ruby
2
- cache: bundler
3
-
4
- rvm:
5
- - 2.4
6
- - 2.5
7
- - 2.6
8
- - ruby-head
9
-
10
- #before_install:
11
- # - gem update --system
12
- # - gem install bundler
13
-
14
- gemfile:
15
- - gemfiles/rails_5_0.gemfile
16
- - gemfiles/rails_5_1.gemfile
17
- - gemfiles/rails_5_2.gemfile
18
- - gemfiles/rails_6_0.gemfile
19
- - gemfiles/rails_master.gemfile
20
-
21
- matrix:
22
- fast_finish: true
23
- # Run Danger only once
24
- include:
25
- - rvm: 2.5
26
- gemfile: gemfiles/rails_5_2.gemfile
27
- script: bundle exec danger
28
- exclude:
29
- - gemfile: gemfiles/rails_6_0.gemfile
30
- rvm: 2.4
31
- - gemfile: gemfiles/rails_master.gemfile
32
- rvm: 2.4
33
- allow_failures:
34
- - gemfile: gemfiles/rails_master.gemfile
35
- - rvm: ruby-head
@@ -1,50 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "uri"
4
-
5
- class RedirectUriValidator < ActiveModel::EachValidator
6
- def self.native_redirect_uri
7
- Doorkeeper.configuration.native_redirect_uri
8
- end
9
-
10
- def validate_each(record, attribute, value)
11
- if value.blank?
12
- return if Doorkeeper.configuration.allow_blank_redirect_uri?(record)
13
-
14
- record.errors.add(attribute, :blank)
15
- else
16
- value.split.each do |val|
17
- uri = ::URI.parse(val)
18
- next if native_redirect_uri?(uri)
19
-
20
- record.errors.add(attribute, :forbidden_uri) if forbidden_uri?(uri)
21
- record.errors.add(attribute, :fragment_present) unless uri.fragment.nil?
22
- record.errors.add(attribute, :relative_uri) if uri.scheme.nil? || uri.host.nil?
23
- record.errors.add(attribute, :secured_uri) if invalid_ssl_uri?(uri)
24
- end
25
- end
26
- rescue URI::InvalidURIError
27
- record.errors.add(attribute, :invalid_uri)
28
- end
29
-
30
- private
31
-
32
- def native_redirect_uri?(uri)
33
- self.class.native_redirect_uri.present? && uri.to_s == self.class.native_redirect_uri.to_s
34
- end
35
-
36
- def forbidden_uri?(uri)
37
- Doorkeeper.configuration.forbid_redirect_uri.call(uri)
38
- end
39
-
40
- def invalid_ssl_uri?(uri)
41
- forces_ssl = Doorkeeper.configuration.force_ssl_in_redirect_uri
42
- non_https = uri.try(:scheme) == "http"
43
-
44
- if forces_ssl.respond_to?(:call)
45
- forces_ssl.call(uri) && non_https
46
- else
47
- forces_ssl && non_https
48
- end
49
- end
50
- end
@@ -1,29 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- # Rails 5 deprecates calling HTTP action methods with positional arguments
4
- # in favor of keyword arguments. However, the keyword argument form is only
5
- # supported in Rails 5+. Since we support back to 4, we need some sort of shim
6
- # to avoid super noisy deprecations when running tests.
7
- module RoutingHTTPMethodShim
8
- def get(path, **args)
9
- super(path, args[:params], args[:headers])
10
- end
11
-
12
- def post(path, **args)
13
- super(path, args[:params], args[:headers])
14
- end
15
-
16
- def put(path, **args)
17
- super(path, args[:params], args[:headers])
18
- end
19
- end
20
-
21
- module ControllerHTTPMethodShim
22
- def process(action, http_method = "GET", **args)
23
- if (as = args.delete(:as))
24
- @request.headers["Content-Type"] = Mime[as].to_s
25
- end
26
-
27
- super(action, http_method, args[:params], args[:session], args[:flash])
28
- end
29
- end