gitextract_wns691gx/ ├── .codeclimate.yml ├── .coveralls.yml ├── .dockerignore ├── .editorconfig ├── .github/ │ ├── FUNDING.yml │ ├── ISSUE_TEMPLATE.md │ ├── PULL_REQUEST_TEMPLATE.md │ ├── dependabot.yml │ └── workflows/ │ ├── changelog.yml │ ├── ci.yml │ └── rubocop.yml ├── .gitignore ├── .hound.yml ├── .rspec ├── .rubocop.yml ├── .rubocop_todo.yml ├── AGENTS.md ├── CHANGELOG.md ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── Dockerfile ├── Gemfile ├── MIT-LICENSE ├── NEWS.md ├── README.md ├── RELEASING.md ├── Rakefile ├── SECURITY.md ├── UPGRADE.md ├── app/ │ ├── assets/ │ │ └── stylesheets/ │ │ └── doorkeeper/ │ │ ├── admin/ │ │ │ └── application.css │ │ └── application.css │ ├── controllers/ │ │ └── doorkeeper/ │ │ ├── application_controller.rb │ │ ├── application_metal_controller.rb │ │ ├── applications_controller.rb │ │ ├── authorizations_controller.rb │ │ ├── authorized_applications_controller.rb │ │ ├── token_info_controller.rb │ │ └── tokens_controller.rb │ ├── helpers/ │ │ └── doorkeeper/ │ │ └── dashboard_helper.rb │ └── views/ │ ├── doorkeeper/ │ │ ├── applications/ │ │ │ ├── _delete_form.html.erb │ │ │ ├── _form.html.erb │ │ │ ├── edit.html.erb │ │ │ ├── index.html.erb │ │ │ ├── new.html.erb │ │ │ └── show.html.erb │ │ ├── authorizations/ │ │ │ ├── error.html.erb │ │ │ ├── form_post.html.erb │ │ │ ├── new.html.erb │ │ │ └── show.html.erb │ │ └── authorized_applications/ │ │ ├── _delete_form.html.erb │ │ └── index.html.erb │ └── layouts/ │ └── doorkeeper/ │ ├── admin.html.erb │ └── application.html.erb ├── benchmark/ │ ├── ruby/ │ │ └── client_credentials.rb │ └── wrk/ │ └── .keep ├── bin/ │ └── console ├── config/ │ └── locales/ │ └── en.yml ├── doorkeeper.gemspec ├── gemfiles/ │ ├── rails_7_0.gemfile │ ├── rails_7_1.gemfile │ ├── rails_7_2.gemfile │ ├── rails_8_0.gemfile │ └── rails_edge.gemfile ├── lib/ │ ├── doorkeeper/ │ │ ├── config/ │ │ │ ├── abstract_builder.rb │ │ │ ├── option.rb │ │ │ └── validations.rb │ │ ├── config.rb │ │ ├── engine.rb │ │ ├── errors.rb │ │ ├── grant_flow/ │ │ │ ├── fallback_flow.rb │ │ │ ├── flow.rb │ │ │ └── registry.rb │ │ ├── grant_flow.rb │ │ ├── grape/ │ │ │ ├── authorization_decorator.rb │ │ │ └── helpers.rb │ │ ├── helpers/ │ │ │ └── controller.rb │ │ ├── models/ │ │ │ ├── access_grant_mixin.rb │ │ │ ├── access_token_mixin.rb │ │ │ ├── application_mixin.rb │ │ │ └── concerns/ │ │ │ ├── accessible.rb │ │ │ ├── expirable.rb │ │ │ ├── expiration_time_sql_math.rb │ │ │ ├── orderable.rb │ │ │ ├── ownership.rb │ │ │ ├── polymorphic_resource_owner.rb │ │ │ ├── resource_ownerable.rb │ │ │ ├── reusable.rb │ │ │ ├── revocable.rb │ │ │ ├── scopes.rb │ │ │ ├── secret_storable.rb │ │ │ └── write_to_primary.rb │ │ ├── oauth/ │ │ │ ├── authorization/ │ │ │ │ ├── code.rb │ │ │ │ ├── context.rb │ │ │ │ ├── token.rb │ │ │ │ └── uri_builder.rb │ │ │ ├── authorization_code_request.rb │ │ │ ├── base_request.rb │ │ │ ├── base_response.rb │ │ │ ├── client/ │ │ │ │ └── credentials.rb │ │ │ ├── client.rb │ │ │ ├── client_credentials/ │ │ │ │ ├── creator.rb │ │ │ │ ├── issuer.rb │ │ │ │ └── validator.rb │ │ │ ├── client_credentials_request.rb │ │ │ ├── code_request.rb │ │ │ ├── code_response.rb │ │ │ ├── error.rb │ │ │ ├── error_response.rb │ │ │ ├── forbidden_token_response.rb │ │ │ ├── helpers/ │ │ │ │ ├── scope_checker.rb │ │ │ │ ├── unique_token.rb │ │ │ │ └── uri_checker.rb │ │ │ ├── hooks/ │ │ │ │ └── context.rb │ │ │ ├── invalid_request_response.rb │ │ │ ├── invalid_token_response.rb │ │ │ ├── nonstandard.rb │ │ │ ├── password_access_token_request.rb │ │ │ ├── pre_authorization.rb │ │ │ ├── refresh_token_request.rb │ │ │ ├── scopes.rb │ │ │ ├── token.rb │ │ │ ├── token_introspection.rb │ │ │ ├── token_request.rb │ │ │ └── token_response.rb │ │ ├── oauth.rb │ │ ├── orm/ │ │ │ ├── active_record/ │ │ │ │ ├── access_grant.rb │ │ │ │ ├── access_token.rb │ │ │ │ ├── application.rb │ │ │ │ ├── mixins/ │ │ │ │ │ ├── access_grant.rb │ │ │ │ │ ├── access_token.rb │ │ │ │ │ └── application.rb │ │ │ │ ├── redirect_uri_validator.rb │ │ │ │ └── stale_records_cleaner.rb │ │ │ └── active_record.rb │ │ ├── rails/ │ │ │ ├── helpers.rb │ │ │ ├── routes/ │ │ │ │ ├── abstract_router.rb │ │ │ │ ├── mapper.rb │ │ │ │ ├── mapping.rb │ │ │ │ └── registry.rb │ │ │ └── routes.rb │ │ ├── rake/ │ │ │ ├── db.rake │ │ │ └── setup.rake │ │ ├── rake.rb │ │ ├── request/ │ │ │ ├── authorization_code.rb │ │ │ ├── client_credentials.rb │ │ │ ├── code.rb │ │ │ ├── password.rb │ │ │ ├── refresh_token.rb │ │ │ ├── strategy.rb │ │ │ └── token.rb │ │ ├── request.rb │ │ ├── revocable_tokens/ │ │ │ ├── revocable_access_token.rb │ │ │ └── revocable_refresh_token.rb │ │ ├── secret_storing/ │ │ │ ├── base.rb │ │ │ ├── bcrypt.rb │ │ │ ├── plain.rb │ │ │ └── sha256_hash.rb │ │ ├── server.rb │ │ ├── stale_records_cleaner.rb │ │ ├── validations.rb │ │ └── version.rb │ ├── doorkeeper.rb │ └── generators/ │ └── doorkeeper/ │ ├── application_owner_generator.rb │ ├── confidential_applications_generator.rb │ ├── enable_polymorphic_resource_owner_generator.rb │ ├── install_generator.rb │ ├── migration_generator.rb │ ├── pkce_generator.rb │ ├── previous_refresh_token_generator.rb │ ├── remove_applications_secret_not_null_constraint_generator.rb │ ├── templates/ │ │ ├── README │ │ ├── add_confidential_to_applications.rb.erb │ │ ├── add_owner_to_application_migration.rb.erb │ │ ├── add_previous_refresh_token_to_access_tokens.rb.erb │ │ ├── enable_pkce_migration.rb.erb │ │ ├── enable_polymorphic_resource_owner_migration.rb.erb │ │ ├── initializer.rb │ │ ├── migration.rb.erb │ │ └── remove_applications_secret_not_null_constraint.rb.erb │ └── views_generator.rb └── spec/ ├── controllers/ │ ├── application_controller_spec.rb │ ├── application_metal_controller_spec.rb │ ├── applications_controller_spec.rb │ ├── authorizations_controller_spec.rb │ ├── protected_resources_controller_spec.rb │ ├── token_info_controller_spec.rb │ └── tokens_controller_spec.rb ├── doorkeeper/ │ ├── redirect_uri_validator_spec.rb │ ├── server_spec.rb │ ├── stale_records_cleaner_spec.rb │ └── version_spec.rb ├── dummy/ │ ├── Rakefile │ ├── app/ │ │ ├── assets/ │ │ │ └── config/ │ │ │ └── manifest.js │ │ ├── controllers/ │ │ │ ├── application_controller.rb │ │ │ ├── custom_authorizations_controller.rb │ │ │ ├── full_protected_resources_controller.rb │ │ │ ├── home_controller.rb │ │ │ ├── metal_controller.rb │ │ │ └── semi_protected_resources_controller.rb │ │ ├── helpers/ │ │ │ └── application_helper.rb │ │ ├── models/ │ │ │ └── user.rb │ │ └── views/ │ │ ├── home/ │ │ │ └── index.html.erb │ │ └── layouts/ │ │ └── application.html.erb │ ├── config/ │ │ ├── application.rb │ │ ├── boot.rb │ │ ├── database.yml │ │ ├── environment.rb │ │ ├── environments/ │ │ │ ├── development.rb │ │ │ ├── production.rb │ │ │ └── test.rb │ │ ├── initializers/ │ │ │ ├── backtrace_silencers.rb │ │ │ ├── doorkeeper.rb │ │ │ ├── secret_token.rb │ │ │ ├── session_store.rb │ │ │ └── wrap_parameters.rb │ │ ├── locales/ │ │ │ └── doorkeeper.en.yml │ │ └── routes.rb │ ├── config.ru │ ├── db/ │ │ ├── migrate/ │ │ │ ├── 20111122132257_create_users.rb │ │ │ ├── 20120312140401_add_password_to_users.rb │ │ │ ├── 20151223192035_create_doorkeeper_tables.rb │ │ │ ├── 20151223200000_add_owner_to_application.rb │ │ │ ├── 20160320211015_add_previous_refresh_token_to_access_tokens.rb │ │ │ ├── 20170822064514_enable_pkce.rb │ │ │ ├── 20180210183654_add_confidential_to_applications.rb │ │ │ └── 20230205064514_add_custom_attributes.rb │ │ └── schema.rb │ ├── public/ │ │ ├── 404.html │ │ ├── 422.html │ │ └── 500.html │ └── script/ │ └── rails ├── factories.rb ├── generators/ │ ├── application_owner_generator_spec.rb │ ├── confidential_applications_generator_spec.rb │ ├── enable_polymorphic_resource_owner_generator_spec.rb │ ├── install_generator_spec.rb │ ├── migration_generator_spec.rb │ ├── pkce_generator_spec.rb │ ├── previous_refresh_token_generator_spec.rb │ ├── remove_applications_secret_not_null_constraint_generator_spec.rb │ ├── templates/ │ │ └── routes.rb │ └── views_generator_spec.rb ├── grape/ │ └── grape_integration_spec.rb ├── helpers/ │ └── doorkeeper/ │ └── dashboard_helper_spec.rb ├── lib/ │ ├── config_spec.rb │ ├── doorkeeper/ │ │ └── orm/ │ │ └── active_record_spec.rb │ ├── doorkeeper_spec.rb │ ├── grant_flow/ │ │ └── flow_spec.rb │ ├── grant_flow_spec.rb │ ├── models/ │ │ ├── concerns/ │ │ │ └── write_to_primary_spec.rb │ │ ├── expirable_spec.rb │ │ ├── reusable_spec.rb │ │ ├── revocable_spec.rb │ │ ├── scopes_spec.rb │ │ └── secret_storable_spec.rb │ ├── oauth/ │ │ ├── authorization/ │ │ │ ├── code_spec.rb │ │ │ └── uri_builder_spec.rb │ │ ├── authorization_code_request_spec.rb │ │ ├── base_request_spec.rb │ │ ├── base_response_spec.rb │ │ ├── client/ │ │ │ └── credentials_spec.rb │ │ ├── client_credentials/ │ │ │ ├── creator_spec.rb │ │ │ ├── issuer_spec.rb │ │ │ └── validation_spec.rb │ │ ├── client_credentials_integration_spec.rb │ │ ├── client_credentials_request_spec.rb │ │ ├── client_spec.rb │ │ ├── code_request_spec.rb │ │ ├── code_response_spec.rb │ │ ├── error_response_spec.rb │ │ ├── error_spec.rb │ │ ├── forbidden_token_response_spec.rb │ │ ├── helpers/ │ │ │ ├── scope_checker_spec.rb │ │ │ ├── unique_token_spec.rb │ │ │ └── uri_checker_spec.rb │ │ ├── invalid_request_response_spec.rb │ │ ├── invalid_token_response_spec.rb │ │ ├── password_access_token_request_spec.rb │ │ ├── pre_authorization_spec.rb │ │ ├── refresh_token_request_spec.rb │ │ ├── scopes_spec.rb │ │ ├── token_request_spec.rb │ │ ├── token_response_spec.rb │ │ └── token_spec.rb │ ├── option_spec.rb │ ├── request/ │ │ └── strategy_spec.rb │ └── secret_storing/ │ ├── base_spec.rb │ ├── bcrypt_spec.rb │ ├── plain_spec.rb │ └── sha256_hash_spec.rb ├── models/ │ └── doorkeeper/ │ ├── access_grant_spec.rb │ ├── access_token_spec.rb │ └── application_spec.rb ├── requests/ │ ├── applications/ │ │ ├── applications_request_spec.rb │ │ └── authorized_applications_spec.rb │ ├── endpoints/ │ │ ├── authorization_spec.rb │ │ └── token_spec.rb │ ├── flows/ │ │ ├── authorization_code_errors_spec.rb │ │ ├── authorization_code_spec.rb │ │ ├── client_credentials_spec.rb │ │ ├── implicit_grant_errors_spec.rb │ │ ├── implicit_grant_spec.rb │ │ ├── password_spec.rb │ │ ├── refresh_token_spec.rb │ │ ├── revoke_token_spec.rb │ │ └── skip_authorization_spec.rb │ └── protected_resources/ │ ├── metal_spec.rb │ └── private_api_spec.rb ├── routing/ │ ├── custom_controller_routes_spec.rb │ ├── default_routes_spec.rb │ └── scoped_routes_spec.rb ├── spec_helper.rb ├── spec_helper_integration.rb └── support/ ├── dependencies/ │ └── factory_bot.rb ├── doorkeeper_rspec.rb ├── helpers/ │ ├── access_token_request_helper.rb │ ├── authorization_request_helper.rb │ ├── config_helper.rb │ ├── model_helper.rb │ ├── request_spec_helper.rb │ └── url_helper.rb ├── orm/ │ └── active_record.rb ├── render_with_matcher.rb └── shared/ ├── controllers_shared_context.rb ├── hashing_shared_context.rb └── models_shared_examples.rb