doorkeeper-mongodb 5.3.0 → 5.4.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.
- checksums.yaml +4 -4
- data/README.md +2 -2
- data/Rakefile +18 -4
- data/lib/doorkeeper-mongodb/mixins/mongoid/access_token_mixin.rb +45 -5
- data/lib/doorkeeper-mongodb/version.rb +1 -1
- data/spec/dummy/app/assets/config/manifest.js +0 -0
- data/spec/dummy/app/controllers/application_controller.rb +0 -0
- data/spec/dummy/app/controllers/custom_authorizations_controller.rb +0 -0
- data/spec/dummy/app/controllers/full_protected_resources_controller.rb +0 -0
- data/spec/dummy/app/controllers/home_controller.rb +0 -0
- data/spec/dummy/app/controllers/metal_controller.rb +0 -0
- data/spec/dummy/app/controllers/semi_protected_resources_controller.rb +0 -0
- data/spec/dummy/app/helpers/application_helper.rb +0 -0
- data/spec/dummy/app/views/home/index.html.erb +0 -0
- data/spec/dummy/app/views/layouts/application.html.erb +0 -0
- data/spec/dummy/config/application.rb +0 -0
- data/spec/dummy/config/boot.rb +0 -0
- data/spec/dummy/config/database.yml +0 -0
- data/spec/dummy/config/environment.rb +0 -0
- data/spec/dummy/config/environments/development.rb +0 -0
- data/spec/dummy/config/environments/production.rb +0 -0
- data/spec/dummy/config/environments/test.rb +0 -0
- data/spec/dummy/config/initializers/backtrace_silencers.rb +0 -0
- data/spec/dummy/config/initializers/doorkeeper.rb +7 -2
- data/spec/dummy/config/initializers/secret_token.rb +0 -0
- data/spec/dummy/config/initializers/session_store.rb +0 -0
- data/spec/dummy/config/initializers/wrap_parameters.rb +0 -0
- data/spec/dummy/config/locales/doorkeeper.en.yml +0 -0
- data/spec/dummy/config/mongoid8.yml +19 -0
- data/spec/dummy/config/routes.rb +0 -0
- data/spec/dummy/config.ru +1 -1
- data/spec/dummy/db/migrate/20111122132257_create_users.rb +0 -0
- data/spec/dummy/db/migrate/20120312140401_add_password_to_users.rb +0 -0
- data/spec/dummy/db/migrate/20151223192035_create_doorkeeper_tables.rb +0 -0
- data/spec/dummy/db/migrate/20151223200000_add_owner_to_application.rb +0 -0
- data/spec/dummy/db/migrate/20160320211015_add_previous_refresh_token_to_access_tokens.rb +0 -0
- data/spec/dummy/db/migrate/20170822064514_enable_pkce.rb +0 -0
- data/spec/dummy/db/migrate/20180210183654_add_confidential_to_applications.rb +0 -0
- data/spec/dummy/db/migrate/20230205064514_add_custom_attributes.rb +8 -0
- data/spec/dummy/db/schema.rb +3 -1
- data/spec/dummy/log/test.log +39440 -0
- data/spec/dummy/public/404.html +0 -0
- data/spec/dummy/public/422.html +0 -0
- data/spec/dummy/public/500.html +0 -0
- data/spec/dummy/public/favicon.ico +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/2L/2LdlR-88TqZc8vSU7Z58xiNpCGRZj0CIlOxSN4Vx2i4.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/{Pn/PnXU_mkG2fLZFm9BwiZ03BZdBTjKuInP-cRXjHS7yJo.cache → 2r/2r0L9eNOmETsg4Tm1IgBdw3J4ahcko41NpILRXu19_A.cache} +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/5y/5ywocFQgpSY36nyF_xDKPExhDRo-eqeiqfDvQee1K9k.cache +2 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/{Qs/QsVgO6vM5Yn9oeYTYlrqtyVnK6sdVDWDa083N7zpfHw.cache → 8r/8rW0CpDDUJZ7xvg86t6jZ6WmyvaVZ0uTPEPRjghFIKo.cache} +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/{PA/PAH_jI20wRw12tngeJ-V619c30avNLDu5U9Z-9Pc5SQ.cache → Cs/CsfBL8Dls9-jhjFsNYt4DZxu5LWChDMB-xXKjsEFSsU.cache} +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/{8D/8DJG7JfPvShfLLyeSom6NZ_TcQc6QH27tJ7prEWZPfI.cache → Cv/Cv9WXE_0OqtPUZBXfTWaE8uKx9oFIzqO18ZkwVaBLSg.cache} +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/Mf/MfB2-0nbsmC548XBSLftafi6BZ9nAquBA-6eu7mAmdE.cache +2 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/N2/N2cUP-Um_nQ5ZTCQr_H0bKIjOSIyV7Ry5sT6-DB9e4A.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/{FJ/FJlQpfMtpRbrM5P8A7d2FAelFKwo6GrVs2xks8z5GKU.cache → Ot/OtNAnT3d-csAKBtJ8UBLOSwUDyfmOdCWpS08RaSCGsQ.cache} +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/P3/P33RwiTMGEu2wZySBEUmf5U7hnfBhdL49wzdUWXYNRs.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/RZ/RZAL9gIt4aD731Ikf7UZZNPSZXzhPqtDskLB7nQcWH4.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/SQ/SQVJeYO2bM0qgQiOaeVBjYo3SWQZmvixa3tXUjsmuUs.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/{Ma/MaK3K1AoZZ4xM5fOOifhROd73hfZJpP4yGbkGdoYtEk.cache → V2/V2JApVhUSYhvWnNVIbpe58U4xheVkpi0gCStqjDN6-A.cache} +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/{Lk/LklIq5hrBAPESXVUpFMwQ9L-1qTj90sPVi6U19_Xi-Q.cache → VA/VADOUaZFukufOb44ts4KoyQZumPcVJET0bi9RvC7c-o.cache} +1 -1
- data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/Vz/VzdPLfWn16XbpHNJdkDMamAf3QutM29cvvPkDNyy5nE.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/W9/W9QfraySVwoRt-SgGOIS0e-iP8R1qP_URwXZw1l6M5E.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/Wy/Wyiw07ngOzgV6RPis_Lo2hhSRkwo2YSqKTEDAF0crhA.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/Z6/Z6rAtdVt3OXS26vLVCtdO3vmMlttI3ajdpbC2FHk7iQ.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/b6/b6QRH6ZdCc0e6bUWu4qni_kZmptaMgWciO8Jl9q6_p8.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/{Pm/PmheG0PGFqDws1qgFOxOyIL-gpMof3Ar9eSRKVLYuik.cache → fP/fPihom3hnc1rQQxpviTvZPRJB_IghWYWP3dDcsGrcLk.cache} +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/gD/gDU38plXvosMgFK47_PBI9xGVsmsE2tShWEZzxiek3k.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/gR/gRqL5_jaFW7eA3d2frJmOzw_vFLuvfhwMhotAlsO8J4.cache +2 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/jC/jCTZ1jAldKBn4OTANBBmCKzxLrDgok1ur4meoTqlDNg.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/{yN/yNOFGOsnHmxXNMkuEAWuL1u3jlmdvrdeoTx6DDJ1in8.cache → jc/jcB8w1gBT7JP10DW4OOvvYpW1ZFeMyedngmMy3QbRLQ.cache} +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/jg/jgxXkkkXf1NPOPrpNdEJzhDt-2xHGzd_-mLkIHWrOr4.cache +2 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/nx/nxzZnvk5YyBhTUloQSZZ5zRuaqlsLiHy_AbOzQ3d788.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/wr/wrlf8nUW2yftpcIA97qImyECR8f8o3OiOdHLdfkmw8c.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/{qT/qTQIQsmS0Wbbg2JxNn9rxdI5qVOTg5SfyQdaTvr9vLo.cache → xd/xdD4KJ55W3jy5PIrwT0UnDp1toKpUfgrjJBgB4WaPIc.cache} +0 -0
- data/spec/support/doorkeeper_rspec.rb +0 -0
- data/spec/support/orm/mongoid.rb +18 -2
- data/spec/support/orm/mongoid8.rb +6 -0
- data/spec/support/render_with_matcher.rb +26 -0
- metadata +117 -241
- data/spec/controllers/application_metal_controller_spec.rb +0 -64
- data/spec/controllers/applications_controller_spec.rb +0 -270
- data/spec/controllers/authorizations_controller_spec.rb +0 -744
- data/spec/controllers/protected_resources_controller_spec.rb +0 -361
- data/spec/controllers/token_info_controller_spec.rb +0 -50
- data/spec/controllers/tokens_controller_spec.rb +0 -542
- data/spec/doorkeeper/redirect_uri_validator_spec.rb +0 -183
- data/spec/doorkeeper/server_spec.rb +0 -50
- data/spec/doorkeeper/stale_records_cleaner_spec.rb +0 -103
- data/spec/doorkeeper/version_spec.rb +0 -17
- data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/-o/-ofn45zIfO5vx4VD6m6NXesLf6da5usA-Sbw2SVju3o.cache +0 -2
- data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/0_/0_ouGcG_o_1zmVmBe-tdQYk594LBwVa1bumjrKtdfEw.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/2X/2XMMcHbyTSRqh1GkV0xzyIETNtt-zgN6iniziShaKmQ.cache +0 -2
- data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/4Q/4QQw-pMQ98JIj3xdcFhGBQdysdGPY9rWffRqWMmyjew.cache +0 -1
- data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/7H/7HjRsym0tTpXFCVhWt6kteMs_-CozKVbr9s5syHm8es.cache +0 -1
- data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/8B/8BxJyv22HPFHu1se_l2J8qW1N9NzZ16UOWOy1YMSgs4.cache +0 -1
- data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/9x/9xjtGv-yKjj62x9uFwBZg8pTSh9ERPAgANwNo9uwIaA.cache +0 -1
- data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/Bt/BtXO7f0PZ8DNt3TMLYM-zY7LkbWa_KgyB0v1V98M1CQ.cache +0 -1
- data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/E0/E02f1Q2tutWumMulGCFNfqQNjvEP_hMAK_5E83eWepI.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/EZ/EZGpd6pUEJZxO6uT2yIS4Fpn5KX7VDgC9VB3AaemF5Q.cache +0 -2
- data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/L8/L8mOWakJlWKr6MU85rj0V7yGFfNyIR6vE6YXtqArPGw.cache +0 -1
- data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/MB/MBWRxa9S470ee8suxVKp0jYgv6K6FQOqKGV0kPGQNMs.cache +0 -1
- data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/Ph/Ph7RtH_NvG2I8XpTa8mA8SBQXZDzBPVIh4CH6g7OXJ0.cache +0 -2
- data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/So/So59ksdx2dw-_A3-zFZ6Palr7fROjm7_0JDZb04temw.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/Wt/WtXL_iDofLeTH_v0Yf3PM421r9b1V0g-VBvMPeu9KA0.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/dX/dX6FDdUIy8yBCOoaoXcjf71rX9N_bpiXGJ4Urt32NTk.cache +0 -0
- data/spec/factories.rb +0 -30
- data/spec/grape/grape_integration_spec.rb +0 -137
- data/spec/helpers/doorkeeper/dashboard_helper_spec.rb +0 -26
- data/spec/lib/config_spec.rb +0 -824
- data/spec/lib/doorkeeper_spec.rb +0 -27
- data/spec/lib/models/expirable_spec.rb +0 -61
- data/spec/lib/models/reusable_spec.rb +0 -40
- data/spec/lib/models/revocable_spec.rb +0 -55
- data/spec/lib/models/scopes_spec.rb +0 -61
- data/spec/lib/models/secret_storable_spec.rb +0 -136
- data/spec/lib/oauth/authorization/uri_builder_spec.rb +0 -35
- data/spec/lib/oauth/authorization_code_request_spec.rb +0 -180
- data/spec/lib/oauth/base_request_spec.rb +0 -210
- data/spec/lib/oauth/base_response_spec.rb +0 -45
- data/spec/lib/oauth/client/credentials_spec.rb +0 -90
- data/spec/lib/oauth/client_credentials/creator_spec.rb +0 -135
- data/spec/lib/oauth/client_credentials/issuer_spec.rb +0 -110
- data/spec/lib/oauth/client_credentials/validation_spec.rb +0 -92
- data/spec/lib/oauth/client_credentials_integration_spec.rb +0 -27
- data/spec/lib/oauth/client_credentials_request_spec.rb +0 -105
- data/spec/lib/oauth/client_spec.rb +0 -38
- data/spec/lib/oauth/code_request_spec.rb +0 -46
- data/spec/lib/oauth/code_response_spec.rb +0 -36
- data/spec/lib/oauth/error_response_spec.rb +0 -65
- data/spec/lib/oauth/error_spec.rb +0 -21
- data/spec/lib/oauth/forbidden_token_response_spec.rb +0 -20
- data/spec/lib/oauth/helpers/scope_checker_spec.rb +0 -110
- data/spec/lib/oauth/helpers/unique_token_spec.rb +0 -21
- data/spec/lib/oauth/helpers/uri_checker_spec.rb +0 -262
- data/spec/lib/oauth/invalid_request_response_spec.rb +0 -73
- data/spec/lib/oauth/invalid_token_response_spec.rb +0 -53
- data/spec/lib/oauth/password_access_token_request_spec.rb +0 -202
- data/spec/lib/oauth/pre_authorization_spec.rb +0 -230
- data/spec/lib/oauth/refresh_token_request_spec.rb +0 -166
- data/spec/lib/oauth/scopes_spec.rb +0 -146
- data/spec/lib/oauth/token_request_spec.rb +0 -164
- data/spec/lib/oauth/token_response_spec.rb +0 -84
- data/spec/lib/oauth/token_spec.rb +0 -156
- data/spec/lib/option_spec.rb +0 -51
- data/spec/lib/request/strategy_spec.rb +0 -51
- data/spec/lib/secret_storing/base_spec.rb +0 -61
- data/spec/lib/secret_storing/bcrypt_spec.rb +0 -50
- data/spec/lib/secret_storing/plain_spec.rb +0 -45
- data/spec/lib/secret_storing/sha256_hash_spec.rb +0 -49
- data/spec/models/doorkeeper/access_grant_spec.rb +0 -173
- data/spec/models/doorkeeper/access_token_spec.rb +0 -644
- data/spec/models/doorkeeper/application_spec.rb +0 -499
- data/spec/requests/applications/applications_request_spec.rb +0 -257
- data/spec/requests/applications/authorized_applications_spec.rb +0 -32
- data/spec/requests/endpoints/authorization_spec.rb +0 -91
- data/spec/requests/endpoints/token_spec.rb +0 -85
- data/spec/requests/flows/authorization_code_errors_spec.rb +0 -86
- data/spec/requests/flows/authorization_code_spec.rb +0 -559
- data/spec/requests/flows/client_credentials_spec.rb +0 -219
- data/spec/requests/flows/implicit_grant_errors_spec.rb +0 -46
- data/spec/requests/flows/implicit_grant_spec.rb +0 -91
- data/spec/requests/flows/password_spec.rb +0 -356
- data/spec/requests/flows/refresh_token_spec.rb +0 -255
- data/spec/requests/flows/revoke_token_spec.rb +0 -196
- data/spec/requests/flows/skip_authorization_spec.rb +0 -66
- data/spec/requests/protected_resources/metal_spec.rb +0 -16
- data/spec/requests/protected_resources/private_api_spec.rb +0 -83
- data/spec/routing/custom_controller_routes_spec.rb +0 -133
- data/spec/routing/default_routes_spec.rb +0 -41
- data/spec/routing/scoped_routes_spec.rb +0 -47
- data/spec/spec_helper.rb +0 -54
- data/spec/spec_helper_integration.rb +0 -4
- data/spec/support/dependencies/factory_bot.rb +0 -4
- data/spec/support/helpers/access_token_request_helper.rb +0 -14
- data/spec/support/helpers/authorization_request_helper.rb +0 -43
- data/spec/support/helpers/config_helper.rb +0 -11
- data/spec/support/helpers/model_helper.rb +0 -78
- data/spec/support/helpers/request_spec_helper.rb +0 -98
- data/spec/support/helpers/url_helper.rb +0 -62
- data/spec/support/orm/active_record.rb +0 -5
- data/spec/support/shared/controllers_shared_context.rb +0 -100
- data/spec/support/shared/hashing_shared_context.rb +0 -40
- data/spec/support/shared/models_shared_examples.rb +0 -56
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 43ffb322969c5c4a6eac7e397e0198423fecfda21d73fa7c239f04bab34650c2
|
|
4
|
+
data.tar.gz: 7cc3e393c6192a4bd7fd7ba5c7d64061b1163b5c5f4d9468587b2f03d7bdfc2a
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 68e449f5f8746d4537e81ddf4848b8c87d0dc610e9fe89f0a44a12718b7c26e057a7322929b8a053f5d8fce4e41e234ecc7c73d501e692c47acef99668892f74
|
|
7
|
+
data.tar.gz: 591b86f5d37eb1474d42d4efe14fc2ff03082724c18893eb2133d8764e57f25b734ea17dce636271311cffa87022147d52a96c0f869e499bbd5e83707dfb71ea
|
data/README.md
CHANGED
|
@@ -57,8 +57,8 @@ variables defined in `.travis.yml` file.
|
|
|
57
57
|
To run locally, you need to choose a gemfile, with a command similar to:
|
|
58
58
|
|
|
59
59
|
```bash
|
|
60
|
-
$ export RAILS=
|
|
61
|
-
$ export BUNDLE_GEMFILE=$PWD/gemfiles/Gemfile.
|
|
60
|
+
$ export RAILS=6.0
|
|
61
|
+
$ export BUNDLE_GEMFILE=$PWD/gemfiles/Gemfile.mongoid7.rb
|
|
62
62
|
```
|
|
63
63
|
|
|
64
64
|
---
|
data/Rakefile
CHANGED
|
@@ -3,16 +3,30 @@
|
|
|
3
3
|
require "bundler/setup"
|
|
4
4
|
require "rspec/core/rake_task"
|
|
5
5
|
|
|
6
|
+
class ExtensionIntegrator
|
|
7
|
+
def self.gsub(filepath, pattern, value)
|
|
8
|
+
file = File.read(filepath)
|
|
9
|
+
updated_file = file.gsub(pattern, value)
|
|
10
|
+
File.open(filepath, "w") { |line| line.puts(updated_file) }
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
|
|
6
14
|
task :load_doorkeeper do
|
|
7
15
|
`rm -rf spec/`
|
|
8
16
|
`git checkout spec`
|
|
9
|
-
|
|
10
|
-
`git submodule init`
|
|
11
|
-
`git submodule update`
|
|
17
|
+
if Dir["doorkeeper/*"].empty?
|
|
18
|
+
puts `git submodule init`
|
|
19
|
+
puts `git submodule update`
|
|
12
20
|
end
|
|
13
21
|
`cp -r -n doorkeeper/spec .`
|
|
14
22
|
`rm -rf spec/generators/` # we are not ActiveRecord
|
|
15
23
|
`rm -rf spec/validators/`
|
|
24
|
+
ExtensionIntegrator.gsub(
|
|
25
|
+
"spec/spec_helper.rb",
|
|
26
|
+
'require "database_cleaner"',
|
|
27
|
+
"",
|
|
28
|
+
)
|
|
29
|
+
`rm ./spec/models/doorkeeper/application_spec.rb`
|
|
16
30
|
`bundle exec rspec`
|
|
17
31
|
end
|
|
18
32
|
|
|
@@ -20,7 +34,7 @@ desc "Update Git submodules."
|
|
|
20
34
|
task :update_submodules do
|
|
21
35
|
Rake::Task["load_doorkeeper"].invoke if Dir["doorkeeper/*"].empty?
|
|
22
36
|
|
|
23
|
-
`git submodule foreach git pull origin
|
|
37
|
+
`git submodule foreach git pull origin main`
|
|
24
38
|
end
|
|
25
39
|
|
|
26
40
|
desc "Default: run specs."
|
|
@@ -53,6 +53,26 @@ module DoorkeeperMongodb
|
|
|
53
53
|
before_validation :generate_refresh_token,
|
|
54
54
|
on: :create,
|
|
55
55
|
if: :use_refresh_token?
|
|
56
|
+
|
|
57
|
+
# Returns non-expired and non-revoked access tokens
|
|
58
|
+
scope :not_expired, -> {
|
|
59
|
+
relation = where(revoked_at: nil)
|
|
60
|
+
|
|
61
|
+
relation.where(
|
|
62
|
+
{
|
|
63
|
+
"$expr": {
|
|
64
|
+
"$gt": [
|
|
65
|
+
{
|
|
66
|
+
"$add": ["$created_at", { "$multiply": ["$expires_in", 1000] }],
|
|
67
|
+
},
|
|
68
|
+
Time.now.utc,
|
|
69
|
+
],
|
|
70
|
+
},
|
|
71
|
+
},
|
|
72
|
+
).or(
|
|
73
|
+
relation.where(expires_in: nil),
|
|
74
|
+
)
|
|
75
|
+
}
|
|
56
76
|
end
|
|
57
77
|
|
|
58
78
|
module ClassMethods
|
|
@@ -113,8 +133,9 @@ module DoorkeeperMongodb
|
|
|
113
133
|
# @return [Doorkeeper::AccessToken, nil] Access Token instance or
|
|
114
134
|
# nil if matching record was not found
|
|
115
135
|
#
|
|
116
|
-
def matching_token_for(application, resource_owner, scopes)
|
|
136
|
+
def matching_token_for(application, resource_owner, scopes, include_expired: true)
|
|
117
137
|
tokens = authorized_tokens_for(application&.id, resource_owner)
|
|
138
|
+
tokens = tokens.not_expired unless include_expired
|
|
118
139
|
find_matching_token(tokens, application, scopes)
|
|
119
140
|
end
|
|
120
141
|
|
|
@@ -191,6 +212,10 @@ module DoorkeeperMongodb
|
|
|
191
212
|
expires_in = attributes[:expires_in]
|
|
192
213
|
use_refresh_token = attributes[:use_refresh_token]
|
|
193
214
|
|
|
215
|
+
token_attributes = attributes.except(
|
|
216
|
+
:application, :resource_owner, :scopes, :expires_in, :use_refresh_token
|
|
217
|
+
)
|
|
218
|
+
|
|
194
219
|
if Doorkeeper.configuration.reuse_access_token
|
|
195
220
|
access_token = matching_token_for(application, resource_owner, scopes)
|
|
196
221
|
|
|
@@ -203,6 +228,7 @@ module DoorkeeperMongodb
|
|
|
203
228
|
scopes: scopes,
|
|
204
229
|
expires_in: expires_in,
|
|
205
230
|
use_refresh_token: use_refresh_token,
|
|
231
|
+
**token_attributes,
|
|
206
232
|
)
|
|
207
233
|
end
|
|
208
234
|
|
|
@@ -403,15 +429,29 @@ module DoorkeeperMongodb
|
|
|
403
429
|
def generate_token
|
|
404
430
|
self.created_at ||= Time.now.utc
|
|
405
431
|
|
|
406
|
-
@raw_token = token_generator.generate(
|
|
432
|
+
@raw_token = token_generator.generate(attributes_for_token_generator)
|
|
433
|
+
secret_strategy.store_secret(self, :token, @raw_token)
|
|
434
|
+
@raw_token
|
|
435
|
+
end
|
|
436
|
+
|
|
437
|
+
def attributes_for_token_generator
|
|
438
|
+
{
|
|
407
439
|
resource_owner_id: resource_owner_id,
|
|
408
440
|
scopes: scopes,
|
|
409
441
|
application: application,
|
|
410
442
|
expires_in: expires_in,
|
|
411
443
|
created_at: created_at,
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
444
|
+
}.tap do |attributes|
|
|
445
|
+
if Doorkeeper.config.try(:polymorphic_resource_owner?)
|
|
446
|
+
attributes[:resource_owner] = resource_owner
|
|
447
|
+
end
|
|
448
|
+
|
|
449
|
+
if Doorkeeper.config.respond_to?(:custom_access_token_attributes)
|
|
450
|
+
Doorkeeper.config.custom_access_token_attributes.each do |attribute_name|
|
|
451
|
+
attributes[attribute_name] = public_send(attribute_name)
|
|
452
|
+
end
|
|
453
|
+
end
|
|
454
|
+
end
|
|
415
455
|
end
|
|
416
456
|
|
|
417
457
|
def token_generator
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
data/spec/dummy/config/boot.rb
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -41,6 +41,11 @@ Doorkeeper.configure do
|
|
|
41
41
|
#
|
|
42
42
|
# enforce_configured_scopes
|
|
43
43
|
|
|
44
|
+
# Use the url path for the native authorization code flow. Enabling this flag sets the authorization
|
|
45
|
+
# code response route for native redirect uris to oauth/authorize/<code>. The default is oauth/authorize/native?code=<code>.
|
|
46
|
+
# Rationale: https://github.com/doorkeeper-gem/doorkeeper/issues/1143
|
|
47
|
+
# use_url_path_for_native_authorization
|
|
48
|
+
|
|
44
49
|
# Provide support for an owner to be assigned to each registered application (disabled by default)
|
|
45
50
|
# Optional parameter confirmation: true (default false) if you want to enforce ownership of
|
|
46
51
|
# a registered application
|
|
@@ -84,8 +89,8 @@ Doorkeeper.configure do
|
|
|
84
89
|
#
|
|
85
90
|
# implicit and password grant flows have risks that you should understand
|
|
86
91
|
# before enabling:
|
|
87
|
-
#
|
|
88
|
-
#
|
|
92
|
+
# https://datatracker.ietf.org/doc/html/rfc6819#section-4.4.2
|
|
93
|
+
# https://datatracker.ietf.org/doc/html/rfc6819#section-4.4.3
|
|
89
94
|
#
|
|
90
95
|
# grant_flows %w[authorization_code client_credentials]
|
|
91
96
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
development:
|
|
2
|
+
clients:
|
|
3
|
+
default:
|
|
4
|
+
database: doorkeeper-mongoid8-development
|
|
5
|
+
hosts:
|
|
6
|
+
- localhost:27017
|
|
7
|
+
options:
|
|
8
|
+
write:
|
|
9
|
+
w: 1
|
|
10
|
+
|
|
11
|
+
test:
|
|
12
|
+
clients:
|
|
13
|
+
default:
|
|
14
|
+
database: doorkeeper-mongoid7-test
|
|
15
|
+
hosts:
|
|
16
|
+
- localhost:27017
|
|
17
|
+
options:
|
|
18
|
+
write:
|
|
19
|
+
w: 1
|
data/spec/dummy/config/routes.rb
CHANGED
|
File without changes
|
data/spec/dummy/config.ru
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
data/spec/dummy/db/schema.rb
CHANGED
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
#
|
|
11
11
|
# It's strongly recommended that you check this file into your version control system.
|
|
12
12
|
|
|
13
|
-
ActiveRecord::Schema.define(version:
|
|
13
|
+
ActiveRecord::Schema.define(version: 20230205064514) do
|
|
14
14
|
|
|
15
15
|
create_table "oauth_access_grants", force: :cascade do |t|
|
|
16
16
|
t.integer "resource_owner_id", null: false
|
|
@@ -22,6 +22,7 @@ ActiveRecord::Schema.define(version: 20180210183654) do
|
|
|
22
22
|
t.datetime "created_at", null: false
|
|
23
23
|
t.datetime "revoked_at"
|
|
24
24
|
t.string "scopes"
|
|
25
|
+
t.string "tenant_name"
|
|
25
26
|
unless ENV["WITHOUT_PKCE"]
|
|
26
27
|
t.string "code_challenge"
|
|
27
28
|
t.string "code_challenge_method"
|
|
@@ -40,6 +41,7 @@ ActiveRecord::Schema.define(version: 20180210183654) do
|
|
|
40
41
|
t.datetime "created_at", null: false
|
|
41
42
|
t.string "scopes"
|
|
42
43
|
t.string "previous_refresh_token", default: "", null: false
|
|
44
|
+
t.string "tenant_name"
|
|
43
45
|
t.index ["refresh_token"], name: "index_oauth_access_tokens_on_refresh_token", unique: true
|
|
44
46
|
t.index ["resource_owner_id"], name: "index_oauth_access_tokens_on_resource_owner_id"
|
|
45
47
|
t.index ["token"], name: "index_oauth_access_tokens_on_token", unique: true
|