doorkeeper 5.2.6 → 5.3.0

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 (126) hide show
  1. checksums.yaml +4 -4
  2. data/Appraisals +2 -2
  3. data/CHANGELOG.md +15 -14
  4. data/Gemfile +2 -2
  5. data/app/controllers/doorkeeper/application_controller.rb +2 -2
  6. data/app/controllers/doorkeeper/application_metal_controller.rb +2 -2
  7. data/app/controllers/doorkeeper/applications_controller.rb +3 -3
  8. data/app/controllers/doorkeeper/authorizations_controller.rb +2 -2
  9. data/app/controllers/doorkeeper/authorized_applications_controller.rb +3 -3
  10. data/gemfiles/rails_5_0.gemfile +2 -2
  11. data/gemfiles/rails_5_1.gemfile +2 -2
  12. data/gemfiles/rails_5_2.gemfile +2 -2
  13. data/gemfiles/rails_6_0.gemfile +2 -2
  14. data/gemfiles/rails_master.gemfile +2 -2
  15. data/lib/doorkeeper.rb +2 -3
  16. data/lib/doorkeeper/config.rb +71 -39
  17. data/lib/doorkeeper/grape/helpers.rb +1 -1
  18. data/lib/doorkeeper/helpers/controller.rb +10 -8
  19. data/lib/doorkeeper/models/access_grant_mixin.rb +7 -6
  20. data/lib/doorkeeper/models/access_token_mixin.rb +55 -18
  21. data/lib/doorkeeper/models/application_mixin.rb +3 -3
  22. data/lib/doorkeeper/models/concerns/ownership.rb +1 -1
  23. data/lib/doorkeeper/models/concerns/reusable.rb +1 -1
  24. data/lib/doorkeeper/models/concerns/revocable.rb +0 -27
  25. data/lib/doorkeeper/oauth/authorization/code.rb +4 -4
  26. data/lib/doorkeeper/oauth/authorization/token.rb +9 -6
  27. data/lib/doorkeeper/oauth/authorization_code_request.rb +13 -6
  28. data/lib/doorkeeper/oauth/base_request.rb +8 -4
  29. data/lib/doorkeeper/oauth/client.rb +7 -8
  30. data/lib/doorkeeper/oauth/client_credentials/creator.rb +16 -9
  31. data/lib/doorkeeper/oauth/client_credentials/issuer.rb +7 -7
  32. data/lib/doorkeeper/oauth/client_credentials/{validation.rb → validator.rb} +4 -4
  33. data/lib/doorkeeper/oauth/client_credentials_request.rb +1 -1
  34. data/lib/doorkeeper/oauth/code_response.rb +2 -2
  35. data/lib/doorkeeper/oauth/error.rb +1 -1
  36. data/lib/doorkeeper/oauth/error_response.rb +5 -5
  37. data/lib/doorkeeper/oauth/helpers/scope_checker.rb +7 -5
  38. data/lib/doorkeeper/oauth/helpers/unique_token.rb +8 -5
  39. data/lib/doorkeeper/oauth/helpers/uri_checker.rb +1 -1
  40. data/lib/doorkeeper/oauth/invalid_request_response.rb +3 -3
  41. data/lib/doorkeeper/oauth/invalid_token_response.rb +5 -2
  42. data/lib/doorkeeper/oauth/password_access_token_request.rb +3 -3
  43. data/lib/doorkeeper/oauth/pre_authorization.rb +7 -5
  44. data/lib/doorkeeper/oauth/refresh_token_request.rb +5 -5
  45. data/lib/doorkeeper/oauth/token.rb +2 -2
  46. data/lib/doorkeeper/oauth/token_introspection.rb +6 -6
  47. data/lib/doorkeeper/orm/active_record.rb +3 -3
  48. data/lib/doorkeeper/orm/active_record/access_grant.rb +4 -43
  49. data/lib/doorkeeper/orm/active_record/access_token.rb +4 -35
  50. data/lib/doorkeeper/orm/active_record/application.rb +3 -155
  51. data/lib/doorkeeper/orm/active_record/mixins/access_grant.rb +53 -0
  52. data/lib/doorkeeper/orm/active_record/mixins/access_token.rb +47 -0
  53. data/lib/doorkeeper/orm/active_record/mixins/application.rb +128 -0
  54. data/lib/doorkeeper/orm/active_record/redirect_uri_validator.rb +3 -3
  55. data/lib/doorkeeper/rails/helpers.rb +4 -4
  56. data/lib/doorkeeper/rails/routes.rb +5 -7
  57. data/lib/doorkeeper/rake/db.rake +3 -3
  58. data/lib/doorkeeper/request.rb +1 -1
  59. data/lib/doorkeeper/request/authorization_code.rb +3 -3
  60. data/lib/doorkeeper/request/client_credentials.rb +2 -2
  61. data/lib/doorkeeper/request/password.rb +2 -2
  62. data/lib/doorkeeper/request/refresh_token.rb +3 -3
  63. data/lib/doorkeeper/server.rb +1 -1
  64. data/lib/doorkeeper/stale_records_cleaner.rb +1 -1
  65. data/lib/doorkeeper/version.rb +2 -2
  66. data/lib/generators/doorkeeper/application_owner_generator.rb +1 -1
  67. data/lib/generators/doorkeeper/confidential_applications_generator.rb +1 -1
  68. data/lib/generators/doorkeeper/migration_generator.rb +1 -1
  69. data/lib/generators/doorkeeper/pkce_generator.rb +1 -1
  70. data/lib/generators/doorkeeper/previous_refresh_token_generator.rb +2 -2
  71. data/lib/generators/doorkeeper/templates/initializer.rb +39 -8
  72. data/spec/controllers/application_metal_controller_spec.rb +1 -1
  73. data/spec/controllers/applications_controller_spec.rb +3 -2
  74. data/spec/controllers/authorizations_controller_spec.rb +18 -18
  75. data/spec/controllers/protected_resources_controller_spec.rb +25 -17
  76. data/spec/controllers/token_info_controller_spec.rb +1 -1
  77. data/spec/controllers/tokens_controller_spec.rb +1 -1
  78. data/spec/dummy/db/migrate/20151223192035_create_doorkeeper_tables.rb +3 -3
  79. data/spec/dummy/db/migrate/20160320211015_add_previous_refresh_token_to_access_tokens.rb +1 -1
  80. data/spec/dummy/db/migrate/20180210183654_add_confidential_to_applications.rb +1 -1
  81. data/spec/generators/install_generator_spec.rb +1 -1
  82. data/spec/generators/previous_refresh_token_generator_spec.rb +2 -2
  83. data/spec/helpers/doorkeeper/dashboard_helper_spec.rb +1 -1
  84. data/spec/lib/config_spec.rb +61 -21
  85. data/spec/lib/doorkeeper_spec.rb +1 -1
  86. data/spec/lib/models/revocable_spec.rb +3 -3
  87. data/spec/lib/oauth/authorization_code_request_spec.rb +127 -125
  88. data/spec/lib/oauth/base_request_spec.rb +160 -158
  89. data/spec/lib/oauth/base_response_spec.rb +27 -29
  90. data/spec/lib/oauth/client/credentials_spec.rb +1 -1
  91. data/spec/lib/oauth/client_credentials/creator_spec.rb +42 -5
  92. data/spec/lib/oauth/client_credentials/issuer_spec.rb +12 -12
  93. data/spec/lib/oauth/client_credentials/validation_spec.rb +4 -4
  94. data/spec/lib/oauth/client_credentials_integration_spec.rb +16 -18
  95. data/spec/lib/oauth/client_credentials_request_spec.rb +78 -80
  96. data/spec/lib/oauth/client_spec.rb +26 -26
  97. data/spec/lib/oauth/code_request_spec.rb +34 -34
  98. data/spec/lib/oauth/code_response_spec.rb +21 -25
  99. data/spec/lib/oauth/error_response_spec.rb +42 -44
  100. data/spec/lib/oauth/error_spec.rb +12 -14
  101. data/spec/lib/oauth/forbidden_token_response_spec.rb +11 -13
  102. data/spec/lib/oauth/helpers/scope_checker_spec.rb +30 -18
  103. data/spec/lib/oauth/invalid_request_response_spec.rb +48 -50
  104. data/spec/lib/oauth/invalid_token_response_spec.rb +32 -34
  105. data/spec/lib/oauth/password_access_token_request_spec.rb +145 -147
  106. data/spec/lib/oauth/pre_authorization_spec.rb +159 -161
  107. data/spec/lib/oauth/refresh_token_request_spec.rb +138 -139
  108. data/spec/lib/oauth/scopes_spec.rb +104 -106
  109. data/spec/lib/oauth/token_request_spec.rb +115 -111
  110. data/spec/lib/oauth/token_response_spec.rb +71 -73
  111. data/spec/lib/oauth/token_spec.rb +121 -123
  112. data/spec/models/doorkeeper/access_grant_spec.rb +3 -5
  113. data/spec/models/doorkeeper/access_token_spec.rb +7 -7
  114. data/spec/models/doorkeeper/application_spec.rb +295 -373
  115. data/spec/requests/applications/applications_request_spec.rb +1 -1
  116. data/spec/requests/endpoints/authorization_spec.rb +5 -3
  117. data/spec/requests/flows/authorization_code_spec.rb +34 -22
  118. data/spec/requests/flows/client_credentials_spec.rb +1 -1
  119. data/spec/requests/flows/password_spec.rb +32 -12
  120. data/spec/requests/flows/refresh_token_spec.rb +19 -19
  121. data/spec/requests/flows/revoke_token_spec.rb +18 -12
  122. data/spec/spec_helper.rb +1 -4
  123. data/spec/support/shared/controllers_shared_context.rb +33 -23
  124. data/spec/validators/redirect_uri_validator_spec.rb +1 -1
  125. metadata +6 -5
  126. data/spec/support/http_method_shim.rb +0 -29
@@ -8,7 +8,7 @@ module Doorkeeper
8
8
  class RedirectUriValidator < ActiveModel::EachValidator
9
9
  def validate_each(record, attribute, value)
10
10
  if value.blank?
11
- return if Doorkeeper.configuration.allow_blank_redirect_uri?(record)
11
+ return if Doorkeeper.config.allow_blank_redirect_uri?(record)
12
12
 
13
13
  record.errors.add(attribute, :blank)
14
14
  else
@@ -34,7 +34,7 @@ module Doorkeeper
34
34
  end
35
35
 
36
36
  def forbidden_uri?(uri)
37
- Doorkeeper.configuration.forbid_redirect_uri.call(uri)
37
+ Doorkeeper.config.forbid_redirect_uri.call(uri)
38
38
  end
39
39
 
40
40
  def unspecified_scheme?(uri)
@@ -48,7 +48,7 @@ module Doorkeeper
48
48
  end
49
49
 
50
50
  def invalid_ssl_uri?(uri)
51
- forces_ssl = Doorkeeper.configuration.force_ssl_in_redirect_uri
51
+ forces_ssl = Doorkeeper.config.force_ssl_in_redirect_uri
52
52
  non_https = uri.try(:scheme) == "http"
53
53
 
54
54
  if forces_ssl.respond_to?(:call)
@@ -4,7 +4,7 @@ module Doorkeeper
4
4
  module Rails
5
5
  module Helpers
6
6
  def doorkeeper_authorize!(*scopes)
7
- @_doorkeeper_scopes = scopes.presence || Doorkeeper.configuration.default_scopes
7
+ @_doorkeeper_scopes = scopes.presence || Doorkeeper.config.default_scopes
8
8
 
9
9
  doorkeeper_render_error unless valid_doorkeeper_token?
10
10
  end
@@ -21,7 +21,7 @@ module Doorkeeper
21
21
 
22
22
  def doorkeeper_render_error
23
23
  error = doorkeeper_error
24
- error.raise_exception! if Doorkeeper.configuration.raise_on_errors?
24
+ error.raise_exception! if Doorkeeper.config.raise_on_errors?
25
25
 
26
26
  headers.merge!(error.headers.reject { |k| k == "Content-Type" })
27
27
  doorkeeper_render_error_with(error)
@@ -30,7 +30,7 @@ module Doorkeeper
30
30
  def doorkeeper_render_error_with(error)
31
31
  options = doorkeeper_render_options(error) || {}
32
32
  status = doorkeeper_status_for_error(
33
- error, options.delete(:respond_not_found_when_forbidden)
33
+ error, options.delete(:respond_not_found_when_forbidden),
34
34
  )
35
35
  if options.blank?
36
36
  head status
@@ -72,7 +72,7 @@ module Doorkeeper
72
72
  def doorkeeper_token
73
73
  @doorkeeper_token ||= OAuth::Token.authenticate(
74
74
  request,
75
- *Doorkeeper.configuration.access_token_methods
75
+ *Doorkeeper.config.access_token_methods,
76
76
  )
77
77
  end
78
78
  end
@@ -17,7 +17,7 @@ module Doorkeeper
17
17
  end
18
18
 
19
19
  def self.install!
20
- ActionDispatch::Routing::Mapper.send :include, Doorkeeper::Rails::Routes::Helper
20
+ ActionDispatch::Routing::Mapper.include Doorkeeper::Rails::Routes::Helper
21
21
  end
22
22
 
23
23
  attr_reader :routes
@@ -26,9 +26,7 @@ module Doorkeeper
26
26
  @routes = routes
27
27
  @mapping = Mapper.new.map(&block)
28
28
 
29
- if Doorkeeper.configuration.api_only
30
- @mapping.skips.push(:applications, :authorized_applications)
31
- end
29
+ @mapping.skips.push(:applications, :authorized_applications) if Doorkeeper.config.api_only
32
30
  end
33
31
 
34
32
  def generate_routes!(options)
@@ -59,7 +57,7 @@ module Doorkeeper
59
57
  path: "authorize",
60
58
  only: %i[create destroy],
61
59
  as: mapping[:as],
62
- controller: mapping[:controllers]
60
+ controller: mapping[:controllers],
63
61
  ) do
64
62
  routes.get "/native", action: :show, on: :member
65
63
  routes.get "/", action: :new, on: :member
@@ -71,7 +69,7 @@ module Doorkeeper
71
69
  :token,
72
70
  path: "token",
73
71
  only: [:create], as: mapping[:as],
74
- controller: mapping[:controllers]
72
+ controller: mapping[:controllers],
75
73
  )
76
74
  end
77
75
 
@@ -88,7 +86,7 @@ module Doorkeeper
88
86
  :token_info,
89
87
  path: "token/info",
90
88
  only: [:show], as: mapping[:as],
91
- controller: mapping[:controllers]
89
+ controller: mapping[:controllers],
92
90
  )
93
91
  end
94
92
 
@@ -19,9 +19,9 @@ namespace :doorkeeper do
19
19
 
20
20
  desc "Removes expired (TTL passed) access tokens"
21
21
  task expired_tokens: "doorkeeper:setup" do
22
- expirable_tokens = Doorkeeper::AccessToken.where(refresh_token: nil)
22
+ expirable_tokens = Doorkeeper.config.access_token_model.where(refresh_token: nil)
23
23
  cleaner = Doorkeeper::StaleRecordsCleaner.new(expirable_tokens)
24
- cleaner.clean_expired(Doorkeeper.configuration.access_token_expires_in)
24
+ cleaner.clean_expired(Doorkeeper.config.access_token_expires_in)
25
25
  end
26
26
 
27
27
  desc "Removes stale access grants"
@@ -33,7 +33,7 @@ namespace :doorkeeper do
33
33
  desc "Removes expired (TTL passed) access grants"
34
34
  task expired_grants: "doorkeeper:setup" do
35
35
  cleaner = Doorkeeper::StaleRecordsCleaner.new(Doorkeeper::AccessGrant)
36
- cleaner.clean_expired(Doorkeeper.configuration.authorization_code_expires_in)
36
+ cleaner.clean_expired(Doorkeeper.config.authorization_code_expires_in)
37
37
  end
38
38
  end
39
39
  end
@@ -24,7 +24,7 @@ module Doorkeeper
24
24
  private
25
25
 
26
26
  def token_grant_types
27
- Doorkeeper.configuration.token_grant_types
27
+ Doorkeeper.config.token_grant_types
28
28
  end
29
29
 
30
30
  def build_strategy_class(grant_or_request_type)
@@ -7,10 +7,10 @@ module Doorkeeper
7
7
 
8
8
  def request
9
9
  @request ||= OAuth::AuthorizationCodeRequest.new(
10
- Doorkeeper.configuration,
10
+ Doorkeeper.config,
11
11
  grant,
12
12
  client,
13
- parameters
13
+ parameters,
14
14
  )
15
15
  end
16
16
 
@@ -19,7 +19,7 @@ module Doorkeeper
19
19
  def grant
20
20
  raise Errors::MissingRequiredParameter, :code if parameters[:code].blank?
21
21
 
22
- AccessGrant.by_token(parameters[:code])
22
+ Doorkeeper.config.access_grant_model.by_token(parameters[:code])
23
23
  end
24
24
  end
25
25
  end
@@ -7,9 +7,9 @@ module Doorkeeper
7
7
 
8
8
  def request
9
9
  @request ||= OAuth::ClientCredentialsRequest.new(
10
- Doorkeeper.configuration,
10
+ Doorkeeper.config,
11
11
  client,
12
- parameters
12
+ parameters,
13
13
  )
14
14
  end
15
15
  end
@@ -7,10 +7,10 @@ module Doorkeeper
7
7
 
8
8
  def request
9
9
  @request ||= OAuth::PasswordAccessTokenRequest.new(
10
- Doorkeeper.configuration,
10
+ Doorkeeper.config,
11
11
  client,
12
12
  resource_owner,
13
- parameters
13
+ parameters,
14
14
  )
15
15
  end
16
16
  end
@@ -6,14 +6,14 @@ module Doorkeeper
6
6
  delegate :credentials, :parameters, to: :server
7
7
 
8
8
  def refresh_token
9
- AccessToken.by_refresh_token(parameters[:refresh_token])
9
+ Doorkeeper.config.access_token_model.by_refresh_token(parameters[:refresh_token])
10
10
  end
11
11
 
12
12
  def request
13
13
  @request ||= OAuth::RefreshTokenRequest.new(
14
- Doorkeeper.configuration,
14
+ Doorkeeper.config,
15
15
  refresh_token, credentials,
16
- parameters
16
+ parameters,
17
17
  )
18
18
  end
19
19
  end
@@ -37,7 +37,7 @@ module Doorkeeper
37
37
  end
38
38
 
39
39
  def credentials
40
- methods = Doorkeeper.configuration.client_credentials_methods
40
+ methods = Doorkeeper.config.client_credentials_methods
41
41
  @credentials ||= OAuth::Client::Credentials.from_request(context.request, *methods)
42
42
  end
43
43
  end
@@ -14,7 +14,7 @@ module Doorkeeper
14
14
  end
15
15
 
16
16
  def self.configured_orm
17
- Doorkeeper.configuration.orm
17
+ Doorkeeper.config.orm
18
18
  end
19
19
 
20
20
  def self.new(base_scope)
@@ -8,8 +8,8 @@ module Doorkeeper
8
8
  module VERSION
9
9
  # Semantic versioning
10
10
  MAJOR = 5
11
- MINOR = 2
12
- TINY = 6
11
+ MINOR = 3
12
+ TINY = 0
13
13
  PRE = nil
14
14
 
15
15
  # Full version number
@@ -16,7 +16,7 @@ module Doorkeeper
16
16
  migration_template(
17
17
  "add_owner_to_application_migration.rb.erb",
18
18
  "db/migrate/add_owner_to_application.rb",
19
- migration_version: migration_version
19
+ migration_version: migration_version,
20
20
  )
21
21
  end
22
22
 
@@ -16,7 +16,7 @@ module Doorkeeper
16
16
  migration_template(
17
17
  "add_confidential_to_applications.rb.erb",
18
18
  "db/migrate/add_confidential_to_applications.rb",
19
- migration_version: migration_version
19
+ migration_version: migration_version,
20
20
  )
21
21
  end
22
22
 
@@ -15,7 +15,7 @@ module Doorkeeper
15
15
  migration_template(
16
16
  "migration.rb.erb",
17
17
  "db/migrate/create_doorkeeper_tables.rb",
18
- migration_version: migration_version
18
+ migration_version: migration_version,
19
19
  )
20
20
  end
21
21
 
@@ -16,7 +16,7 @@ module Doorkeeper
16
16
  migration_template(
17
17
  "enable_pkce_migration.rb.erb",
18
18
  "db/migrate/enable_pkce.rb",
19
- migration_version: migration_version
19
+ migration_version: migration_version,
20
20
  )
21
21
  end
22
22
 
@@ -21,7 +21,7 @@ module Doorkeeper
21
21
 
22
22
  migration_template(
23
23
  "add_previous_refresh_token_to_access_tokens.rb.erb",
24
- "db/migrate/add_previous_refresh_token_to_access_tokens.rb"
24
+ "db/migrate/add_previous_refresh_token_to_access_tokens.rb",
25
25
  )
26
26
  end
27
27
 
@@ -34,7 +34,7 @@ module Doorkeeper
34
34
  def no_previous_refresh_token_column?
35
35
  !ActiveRecord::Base.connection.column_exists?(
36
36
  :oauth_access_tokens,
37
- :previous_refresh_token
37
+ :previous_refresh_token,
38
38
  )
39
39
  end
40
40
  end
@@ -29,6 +29,35 @@ Doorkeeper.configure do
29
29
  # end
30
30
  # end
31
31
 
32
+ # You can use your own model classes if you need to extend (or even override) default
33
+ # Doorkeeper models such as `Application`, `AccessToken` and `AccessGrant.
34
+ #
35
+ # Be default Doorkeeper ActiveRecord ORM uses it's own classes:
36
+ #
37
+ # access_token_class "Doorkeeper::AccessToken"
38
+ # access_grant_class "Doorkeeper::AccessGrant"
39
+ # application_class "Doorkeeper::Application"
40
+ #
41
+ # Don't forget to include Doorkeeper ORM mixins into your custom models:
42
+ #
43
+ # * ::Doorkeeper::Orm::ActiveRecord::Mixins::AccessToken - for access token
44
+ # * ::Doorkeeper::Orm::ActiveRecord::Mixins::AccessGrant - for access grant
45
+ # * ::Doorkeeper::Orm::ActiveRecord::Mixins::Application - for application (OAuth2 clients)
46
+ #
47
+ # For example:
48
+ #
49
+ # access_token_class "MyAccessToken"
50
+ #
51
+ # class MyAccessToken < ApplicationRecord
52
+ # include ::Doorkeeper::Orm::ActiveRecord::Mixins::AccessToken
53
+ #
54
+ # self.table_name = "hey_i_wanna_my_name"
55
+ #
56
+ # def destroy_me!
57
+ # destroy
58
+ # end
59
+ # end
60
+
32
61
  # If you are planning to use Doorkeeper in Rails 5 API-only application, then you might
33
62
  # want to use API mode that will skip all the views management and change the way how
34
63
  # Doorkeeper responds to a requests.
@@ -88,14 +117,6 @@ Doorkeeper.configure do
88
117
  #
89
118
  # reuse_access_token
90
119
 
91
- # In case you enabled `reuse_access_token` option Doorkeeper will try to find matching
92
- # token using `matching_token_for` Access Token API that searches for valid records
93
- # in batches in order not to pollute the memory with all the database records. By default
94
- # Doorkeeper uses batch size of 10 000 records. You can increase or decrease this value
95
- # depending on your needs and server capabilities.
96
- #
97
- # token_lookup_batch_size 10_000
98
-
99
120
  # Set a limit for token_reuse if using reuse_access_token option
100
121
  #
101
122
  # This option limits token_reusability to some extent.
@@ -106,6 +127,16 @@ Doorkeeper.configure do
106
127
  #
107
128
  # token_reuse_limit 100
108
129
 
130
+ # Only allow one valid access token obtained via client credentials
131
+ # per client. If a new access token is obtained before the old one
132
+ # expired, the old one gets revoked (disabled by default)
133
+ #
134
+ # When enabling this option, make sure that you do not expect multiple processes
135
+ # using the same credentials at the same time (e.g. web servers spanning
136
+ # multiple machines and/or processes).
137
+ #
138
+ # revoke_previous_client_credentials_token
139
+
109
140
  # Hash access and refresh tokens before persisting them.
110
141
  # This will disable the possibility to use +reuse_access_token+
111
142
  # since plain values can no longer be retrieved.
@@ -21,7 +21,7 @@ describe Doorkeeper::ApplicationMetalController do
21
21
  end
22
22
 
23
23
  describe "enforce_content_type" do
24
- before { allow(Doorkeeper.configuration).to receive(:enforce_content_type).and_return(flag) }
24
+ before { allow(Doorkeeper.config).to receive(:enforce_content_type).and_return(flag) }
25
25
 
26
26
  context "enabled" do
27
27
  let(:flag) { true }
@@ -117,7 +117,7 @@ module Doorkeeper
117
117
 
118
118
  context "when admin is not authenticated" do
119
119
  before do
120
- allow(Doorkeeper.configuration).to receive(:authenticate_admin).and_return(proc do
120
+ allow(Doorkeeper.config).to receive(:authenticate_admin).and_return(proc do
121
121
  redirect_to main_app.root_url
122
122
  end)
123
123
  end
@@ -142,7 +142,8 @@ module Doorkeeper
142
142
  context "when admin is authenticated" do
143
143
  context "when application secrets are hashed" do
144
144
  before do
145
- allow(Doorkeeper.configuration).to receive(:application_secret_strategy).and_return(Doorkeeper::SecretStoring::Sha256Hash)
145
+ allow(Doorkeeper.configuration)
146
+ .to receive(:application_secret_strategy).and_return(Doorkeeper::SecretStoring::Sha256Hash)
146
147
  end
147
148
 
148
149
  it "shows the application secret after creating a new application" do
@@ -27,8 +27,8 @@ describe Doorkeeper::AuthorizationsController, "implicit grant flow" do
27
27
  end)
28
28
  end
29
29
 
30
- allow(Doorkeeper.configuration).to receive(:grant_flows).and_return(["implicit"])
31
- allow(Doorkeeper.configuration).to receive(:authenticate_resource_owner).and_return(->(_) { authenticator_method })
30
+ allow(Doorkeeper.config).to receive(:grant_flows).and_return(["implicit"])
31
+ allow(Doorkeeper.config).to receive(:authenticate_resource_owner).and_return(->(_) { authenticator_method })
32
32
  allow(controller).to receive(:authenticator_method).and_return(user)
33
33
  expect(controller).to receive(:authenticator_method).at_most(:once)
34
34
  end
@@ -69,7 +69,7 @@ describe Doorkeeper::AuthorizationsController, "implicit grant flow" do
69
69
 
70
70
  describe "POST #create in API mode" do
71
71
  before do
72
- allow(Doorkeeper.configuration).to receive(:api_only).and_return(true)
72
+ allow(Doorkeeper.config).to receive(:api_only).and_return(true)
73
73
  post :create, params: { client_id: client.uid, response_type: "token", redirect_uri: client.redirect_uri }
74
74
  end
75
75
 
@@ -127,7 +127,7 @@ describe Doorkeeper::AuthorizationsController, "implicit grant flow" do
127
127
 
128
128
  it "includes error description" do
129
129
  expect(response_json_body["error_description"]).to eq(
130
- translated_invalid_request_error_message(:missing_param, :client_id)
130
+ translated_invalid_request_error_message(:missing_param, :client_id),
131
131
  )
132
132
  end
133
133
 
@@ -177,7 +177,7 @@ describe Doorkeeper::AuthorizationsController, "implicit grant flow" do
177
177
  describe "POST #create in API mode with errors" do
178
178
  context "when missing client_id" do
179
179
  before do
180
- allow(Doorkeeper.configuration).to receive(:api_only).and_return(true)
180
+ allow(Doorkeeper.config).to receive(:api_only).and_return(true)
181
181
 
182
182
  post :create, params: {
183
183
  client_id: "",
@@ -198,7 +198,7 @@ describe Doorkeeper::AuthorizationsController, "implicit grant flow" do
198
198
 
199
199
  it "includes error description" do
200
200
  expect(response_json_body["error_description"]).to eq(
201
- translated_invalid_request_error_message(:missing_param, :client_id)
201
+ translated_invalid_request_error_message(:missing_param, :client_id),
202
202
  )
203
203
  end
204
204
 
@@ -209,7 +209,7 @@ describe Doorkeeper::AuthorizationsController, "implicit grant flow" do
209
209
 
210
210
  context "when other error happens" do
211
211
  before do
212
- allow(Doorkeeper.configuration).to receive(:api_only).and_return(true)
212
+ allow(Doorkeeper.config).to receive(:api_only).and_return(true)
213
213
  default_scopes_exist :public
214
214
 
215
215
  post :create, params: {
@@ -251,7 +251,7 @@ describe Doorkeeper::AuthorizationsController, "implicit grant flow" do
251
251
 
252
252
  describe "POST #create with application already authorized" do
253
253
  before do
254
- allow(Doorkeeper.configuration).to receive(:reuse_access_token).and_return(true)
254
+ allow(Doorkeeper.config).to receive(:reuse_access_token).and_return(true)
255
255
 
256
256
  access_token.save!
257
257
 
@@ -286,12 +286,12 @@ describe Doorkeeper::AuthorizationsController, "implicit grant flow" do
286
286
  end
287
287
 
288
288
  it "should call :before_successful_authorization callback" do
289
- expect(Doorkeeper.configuration)
289
+ expect(Doorkeeper.config)
290
290
  .to receive_message_chain(:before_successful_authorization, :call).with(instance_of(described_class))
291
291
  end
292
292
 
293
293
  it "should call :after_successful_authorization callback" do
294
- expect(Doorkeeper.configuration)
294
+ expect(Doorkeeper.config)
295
295
  .to receive_message_chain(:after_successful_authorization, :call).with(instance_of(described_class))
296
296
  end
297
297
  end
@@ -302,18 +302,18 @@ describe Doorkeeper::AuthorizationsController, "implicit grant flow" do
302
302
  end
303
303
 
304
304
  it "should not call :before_successful_authorization callback" do
305
- expect(Doorkeeper.configuration).not_to receive(:before_successful_authorization)
305
+ expect(Doorkeeper.config).not_to receive(:before_successful_authorization)
306
306
  end
307
307
 
308
308
  it "should not call :after_successful_authorization callback" do
309
- expect(Doorkeeper.configuration).not_to receive(:after_successful_authorization)
309
+ expect(Doorkeeper.config).not_to receive(:after_successful_authorization)
310
310
  end
311
311
  end
312
312
  end
313
313
 
314
314
  describe "GET #new token request with native url and skip_authorization true" do
315
315
  before do
316
- allow(Doorkeeper.configuration).to receive(:skip_authorization).and_return(proc do
316
+ allow(Doorkeeper.config).to receive(:skip_authorization).and_return(proc do
317
317
  true
318
318
  end)
319
319
 
@@ -342,8 +342,8 @@ describe Doorkeeper::AuthorizationsController, "implicit grant flow" do
342
342
 
343
343
  describe "GET #new code request with native url and skip_authorization true" do
344
344
  before do
345
- allow(Doorkeeper.configuration).to receive(:grant_flows).and_return(%w[authorization_code])
346
- allow(Doorkeeper.configuration).to receive(:skip_authorization).and_return(proc do
345
+ allow(Doorkeeper.config).to receive(:grant_flows).and_return(%w[authorization_code])
346
+ allow(Doorkeeper.config).to receive(:skip_authorization).and_return(proc do
347
347
  true
348
348
  end)
349
349
 
@@ -373,7 +373,7 @@ describe Doorkeeper::AuthorizationsController, "implicit grant flow" do
373
373
 
374
374
  describe "GET #new with skip_authorization true" do
375
375
  before do
376
- allow(Doorkeeper.configuration).to receive(:skip_authorization).and_return(proc do
376
+ allow(Doorkeeper.config).to receive(:skip_authorization).and_return(proc do
377
377
  true
378
378
  end)
379
379
 
@@ -412,7 +412,7 @@ describe Doorkeeper::AuthorizationsController, "implicit grant flow" do
412
412
 
413
413
  describe "GET #new in API mode" do
414
414
  before do
415
- allow(Doorkeeper.configuration).to receive(:api_only).and_return(true)
415
+ allow(Doorkeeper.config).to receive(:api_only).and_return(true)
416
416
 
417
417
  get :new, params: {
418
418
  client_id: client.uid,
@@ -468,7 +468,7 @@ describe Doorkeeper::AuthorizationsController, "implicit grant flow" do
468
468
  expect(redirect_uri.match(/token_type=(\w+)&?/)[1]).to eq "Bearer"
469
469
  expect(redirect_uri.match(/expires_in=(\d+)&?/)[1].to_i).to eq 1234
470
470
  expect(
471
- redirect_uri.match(/access_token=([a-zA-Z0-9\-_]+)&?/)[1]
471
+ redirect_uri.match(/access_token=([a-zA-Z0-9\-_]+)&?/)[1],
472
472
  ).to eq Doorkeeper::AccessToken.first.token
473
473
  end
474
474