doorkeeper 4.2.6 → 4.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.
- checksums.yaml +4 -4
- data/.github/ISSUE_TEMPLATE.md +19 -0
- data/.github/PULL_REQUEST_TEMPLATE.md +17 -0
- data/.gitignore +1 -1
- data/.hound.yml +2 -13
- data/.rubocop.yml +13 -0
- data/.travis.yml +13 -5
- data/Appraisals +6 -2
- data/CODE_OF_CONDUCT.md +46 -0
- data/Gemfile +1 -1
- data/NEWS.md +24 -0
- data/README.md +39 -9
- data/SECURITY.md +13 -0
- data/app/controllers/doorkeeper/application_controller.rb +1 -5
- data/app/controllers/doorkeeper/applications_controller.rb +14 -1
- data/app/controllers/doorkeeper/tokens_controller.rb +13 -1
- data/app/helpers/doorkeeper/dashboard_helper.rb +4 -2
- data/app/validators/redirect_uri_validator.rb +12 -2
- data/app/views/doorkeeper/applications/_form.html.erb +1 -1
- data/app/views/doorkeeper/authorized_applications/index.html.erb +0 -1
- data/config/locales/en.yml +3 -5
- data/doorkeeper.gemspec +4 -3
- data/gemfiles/rails_4_2.gemfile +6 -4
- data/gemfiles/rails_5_0.gemfile +4 -4
- data/gemfiles/rails_5_1.gemfile +6 -7
- data/gemfiles/rails_5_2.gemfile +12 -0
- data/gemfiles/rails_master.gemfile +14 -0
- data/lib/doorkeeper.rb +1 -0
- data/lib/doorkeeper/config.rb +55 -55
- data/lib/doorkeeper/engine.rb +3 -3
- data/lib/doorkeeper/grape/helpers.rb +13 -8
- data/lib/doorkeeper/helpers/controller.rb +8 -4
- data/lib/doorkeeper/models/access_token_mixin.rb +14 -7
- data/lib/doorkeeper/models/application_mixin.rb +11 -6
- data/lib/doorkeeper/models/concerns/expirable.rb +7 -5
- data/lib/doorkeeper/oauth/authorization/token.rb +22 -18
- data/lib/doorkeeper/oauth/authorization_code_request.rb +6 -1
- data/lib/doorkeeper/oauth/base_request.rb +5 -5
- data/lib/doorkeeper/oauth/client.rb +2 -2
- data/lib/doorkeeper/oauth/client/credentials.rb +2 -2
- data/lib/doorkeeper/oauth/error.rb +2 -2
- data/lib/doorkeeper/oauth/error_response.rb +1 -2
- data/lib/doorkeeper/oauth/forbidden_token_response.rb +1 -1
- data/lib/doorkeeper/oauth/invalid_token_response.rb +2 -3
- data/lib/doorkeeper/oauth/password_access_token_request.rb +1 -0
- data/lib/doorkeeper/oauth/refresh_token_request.rb +1 -0
- data/lib/doorkeeper/oauth/scopes.rb +18 -8
- data/lib/doorkeeper/oauth/token.rb +1 -1
- data/lib/doorkeeper/oauth/token_introspection.rb +128 -0
- data/lib/doorkeeper/orm/active_record.rb +20 -8
- data/lib/doorkeeper/orm/active_record/access_grant.rb +1 -1
- data/lib/doorkeeper/orm/active_record/access_token.rb +1 -23
- data/lib/doorkeeper/orm/active_record/application.rb +1 -1
- data/lib/doorkeeper/orm/active_record/base_record.rb +11 -0
- data/lib/doorkeeper/rails/helpers.rb +5 -6
- data/lib/doorkeeper/rails/routes.rb +9 -7
- data/lib/doorkeeper/request.rb +7 -1
- data/lib/doorkeeper/validations.rb +3 -2
- data/lib/doorkeeper/version.rb +13 -1
- data/lib/generators/doorkeeper/application_owner_generator.rb +11 -2
- data/lib/generators/doorkeeper/migration_generator.rb +13 -1
- data/lib/generators/doorkeeper/previous_refresh_token_generator.rb +7 -1
- data/lib/generators/doorkeeper/templates/{add_owner_to_application_migration.rb → add_owner_to_application_migration.rb.erb} +1 -1
- data/lib/generators/doorkeeper/templates/{add_previous_refresh_token_to_access_tokens.rb → add_previous_refresh_token_to_access_tokens.rb.erb} +1 -1
- data/lib/generators/doorkeeper/templates/initializer.rb +19 -3
- data/lib/generators/doorkeeper/templates/{migration.rb → migration.rb.erb} +1 -1
- data/spec/controllers/applications_controller_spec.rb +15 -4
- data/spec/controllers/authorizations_controller_spec.rb +5 -5
- data/spec/controllers/protected_resources_controller_spec.rb +28 -19
- data/spec/controllers/token_info_controller_spec.rb +17 -13
- data/spec/controllers/tokens_controller_spec.rb +138 -4
- data/spec/dummy/config/initializers/doorkeeper.rb +1 -1
- data/spec/dummy/config/initializers/{active_record_belongs_to_required_by_default.rb → new_framework_defaults.rb} +1 -1
- data/spec/dummy/config/initializers/secret_token.rb +0 -1
- data/spec/factories.rb +1 -1
- data/spec/generators/application_owner_generator_spec.rb +24 -5
- data/spec/generators/migration_generator_spec.rb +24 -3
- data/spec/generators/previous_refresh_token_generator_spec.rb +57 -0
- data/spec/grape/grape_integration_spec.rb +135 -0
- data/spec/helpers/doorkeeper/dashboard_helper_spec.rb +1 -1
- data/spec/lib/config_spec.rb +115 -12
- data/spec/lib/models/revocable_spec.rb +2 -2
- data/spec/lib/oauth/authorization_code_request_spec.rb +39 -11
- data/spec/lib/oauth/base_request_spec.rb +2 -7
- data/spec/lib/oauth/client_credentials/creator_spec.rb +1 -1
- data/spec/lib/oauth/client_credentials_integration_spec.rb +1 -1
- data/spec/lib/oauth/client_credentials_request_spec.rb +1 -0
- data/spec/lib/oauth/code_request_spec.rb +1 -3
- data/spec/lib/oauth/helpers/uri_checker_spec.rb +5 -0
- data/spec/lib/oauth/invalid_token_response_spec.rb +1 -1
- data/spec/lib/oauth/password_access_token_request_spec.rb +9 -3
- data/spec/lib/oauth/refresh_token_request_spec.rb +19 -7
- data/spec/lib/oauth/scopes_spec.rb +28 -1
- data/spec/lib/oauth/token_request_spec.rb +6 -8
- data/spec/lib/server_spec.rb +10 -0
- data/spec/models/doorkeeper/access_grant_spec.rb +1 -1
- data/spec/models/doorkeeper/access_token_spec.rb +72 -48
- data/spec/models/doorkeeper/application_spec.rb +51 -18
- data/spec/requests/applications/applications_request_spec.rb +5 -5
- data/spec/requests/endpoints/token_spec.rb +8 -1
- data/spec/requests/flows/authorization_code_spec.rb +1 -0
- data/spec/requests/flows/client_credentials_spec.rb +1 -1
- data/spec/requests/flows/implicit_grant_errors_spec.rb +2 -2
- data/spec/requests/flows/refresh_token_spec.rb +4 -4
- data/spec/requests/flows/revoke_token_spec.rb +15 -15
- data/spec/requests/protected_resources/metal_spec.rb +1 -1
- data/spec/requests/protected_resources/private_api_spec.rb +1 -1
- data/spec/routing/custom_controller_routes_spec.rb +4 -0
- data/spec/routing/default_routes_spec.rb +5 -1
- data/spec/spec_helper_integration.rb +15 -4
- data/spec/support/dependencies/factory_girl.rb +2 -2
- data/spec/support/helpers/access_token_request_helper.rb +1 -1
- data/spec/support/helpers/model_helper.rb +9 -4
- data/spec/support/helpers/request_spec_helper.rb +7 -3
- data/spec/support/helpers/url_helper.rb +8 -8
- data/spec/support/shared/controllers_shared_context.rb +2 -6
- data/spec/support/shared/models_shared_examples.rb +4 -4
- data/spec/validators/redirect_uri_validator_spec.rb +51 -6
- data/spec/version/version_spec.rb +15 -0
- metadata +42 -13
@@ -1,2 +1,2 @@
|
|
1
|
-
require '
|
2
|
-
|
1
|
+
require 'factory_bot'
|
2
|
+
FactoryBot.find_definitions
|
@@ -1,6 +1,6 @@
|
|
1
1
|
module ModelHelper
|
2
2
|
def client_exists(client_attributes = {})
|
3
|
-
@client =
|
3
|
+
@client = FactoryBot.create(:application, client_attributes)
|
4
4
|
end
|
5
5
|
|
6
6
|
def create_resource_owner
|
@@ -8,7 +8,7 @@ module ModelHelper
|
|
8
8
|
end
|
9
9
|
|
10
10
|
def authorization_code_exists(options = {})
|
11
|
-
@authorization =
|
11
|
+
@authorization = FactoryBot.create(:access_grant, options)
|
12
12
|
end
|
13
13
|
|
14
14
|
def access_grant_should_exist_for(client, resource_owner)
|
@@ -55,9 +55,14 @@ module ModelHelper
|
|
55
55
|
error_classes = [Sequel::UniqueConstraintViolation, Sequel::ValidationFailed]
|
56
56
|
proc { |error| expect(error.class).to be_in(error_classes) }
|
57
57
|
when :mongo_mapper
|
58
|
-
MongoMapper::DocumentNotValid
|
58
|
+
error_classes = [MongoMapper::DocumentNotValid, Mongo::OperationFailure]
|
59
|
+
proc { |error| expect(error.class).to be_in(error_classes) }
|
59
60
|
when /mongoid/
|
60
|
-
Mongoid::Errors::Validations
|
61
|
+
error_classes = [Mongoid::Errors::Validations]
|
62
|
+
error_classes << Moped::Errors::OperationFailure if defined?(::Moped) # Mongoid 4
|
63
|
+
error_classes << Mongo::Error::OperationFailure if defined?(::Mongo) # Mongoid 5
|
64
|
+
|
65
|
+
proc { |error| expect(error.class).to be_in(error_classes) }
|
61
66
|
else
|
62
67
|
raise "'#{DOORKEEPER_ORM}' ORM is not supported!"
|
63
68
|
end
|
@@ -31,6 +31,10 @@ module RequestSpecHelper
|
|
31
31
|
respond_to?(:response) ? response : page.driver.response
|
32
32
|
end
|
33
33
|
|
34
|
+
def json_response
|
35
|
+
JSON.parse(request_response.body)
|
36
|
+
end
|
37
|
+
|
34
38
|
def should_have_header(header, value)
|
35
39
|
expect(headers[header]).to eq(value)
|
36
40
|
end
|
@@ -48,15 +52,15 @@ module RequestSpecHelper
|
|
48
52
|
end
|
49
53
|
|
50
54
|
def should_have_json(key, value)
|
51
|
-
expect(
|
55
|
+
expect(json_response.fetch(key)).to eq(value)
|
52
56
|
end
|
53
57
|
|
54
58
|
def should_have_json_within(key, value, range)
|
55
|
-
expect(
|
59
|
+
expect(json_response.fetch(key)).to be_within(range).of(value)
|
56
60
|
end
|
57
61
|
|
58
62
|
def should_not_have_json(key)
|
59
|
-
expect(
|
63
|
+
expect(json_response).not_to have_key(key)
|
60
64
|
end
|
61
65
|
|
62
66
|
def sign_in
|
@@ -2,10 +2,10 @@ module UrlHelper
|
|
2
2
|
def token_endpoint_url(options = {})
|
3
3
|
parameters = {
|
4
4
|
code: options[:code],
|
5
|
-
client_id: options[:client_id]
|
5
|
+
client_id: options[:client_id] || (options[:client] ? options[:client].uid : nil),
|
6
6
|
client_secret: options[:client_secret] || (options[:client] ? options[:client].secret : nil),
|
7
7
|
redirect_uri: options[:redirect_uri] || (options[:client] ? options[:client].redirect_uri : nil),
|
8
|
-
grant_type: options[:grant_type]
|
8
|
+
grant_type: options[:grant_type] || 'authorization_code'
|
9
9
|
}
|
10
10
|
"/oauth/token?#{build_query(parameters)}"
|
11
11
|
end
|
@@ -13,7 +13,7 @@ module UrlHelper
|
|
13
13
|
def password_token_endpoint_url(options = {})
|
14
14
|
parameters = {
|
15
15
|
code: options[:code],
|
16
|
-
client_id: options[:client_id]
|
16
|
+
client_id: options[:client_id] || (options[:client] ? options[:client].uid : nil),
|
17
17
|
client_secret: options[:client_secret] || (options[:client] ? options[:client].secret : nil),
|
18
18
|
username: options[:resource_owner_username] || (options[:resource_owner] ? options[:resource_owner].name : nil),
|
19
19
|
password: options[:resource_owner_password] || (options[:resource_owner] ? options[:resource_owner].password : nil),
|
@@ -24,21 +24,21 @@ module UrlHelper
|
|
24
24
|
|
25
25
|
def authorization_endpoint_url(options = {})
|
26
26
|
parameters = {
|
27
|
-
client_id: options[:client_id]
|
28
|
-
redirect_uri: options[:redirect_uri]
|
27
|
+
client_id: options[:client_id] || options[:client].uid,
|
28
|
+
redirect_uri: options[:redirect_uri] || options[:client].redirect_uri,
|
29
29
|
response_type: options[:response_type] || 'code',
|
30
30
|
scope: options[:scope],
|
31
31
|
state: options[:state]
|
32
|
-
}.reject { |
|
32
|
+
}.reject { |_, v| v.blank? }
|
33
33
|
"/oauth/authorize?#{build_query(parameters)}"
|
34
34
|
end
|
35
35
|
|
36
36
|
def refresh_token_endpoint_url(options = {})
|
37
37
|
parameters = {
|
38
38
|
refresh_token: options[:refresh_token],
|
39
|
-
client_id: options[:client_id]
|
39
|
+
client_id: options[:client_id] || options[:client].uid,
|
40
40
|
client_secret: options[:client_secret] || options[:client].secret,
|
41
|
-
grant_type: options[:grant_type]
|
41
|
+
grant_type: options[:grant_type] || 'refresh_token'
|
42
42
|
}
|
43
43
|
"/oauth/token?#{build_query(parameters)}"
|
44
44
|
end
|
@@ -1,7 +1,5 @@
|
|
1
1
|
shared_context 'valid token', token: :valid do
|
2
|
-
let
|
3
|
-
'1A2B3C4D'
|
4
|
-
end
|
2
|
+
let(:token_string) { '1A2B3C4D' }
|
5
3
|
|
6
4
|
let :token do
|
7
5
|
double(Doorkeeper::AccessToken,
|
@@ -17,9 +15,7 @@ shared_context 'valid token', token: :valid do
|
|
17
15
|
end
|
18
16
|
|
19
17
|
shared_context 'invalid token', token: :invalid do
|
20
|
-
let
|
21
|
-
'1A2B3C4D'
|
22
|
-
end
|
18
|
+
let(:token_string) { '1A2B3C4D' }
|
23
19
|
|
24
20
|
let :token do
|
25
21
|
double(Doorkeeper::AccessToken,
|
@@ -34,15 +34,15 @@ shared_examples 'a unique token' do
|
|
34
34
|
end
|
35
35
|
|
36
36
|
it 'is not valid if token exists' do
|
37
|
-
token1 =
|
38
|
-
token2 =
|
37
|
+
token1 = FactoryBot.create factory_name
|
38
|
+
token2 = FactoryBot.create factory_name
|
39
39
|
token2.token = token1.token
|
40
40
|
expect(token2).not_to be_valid
|
41
41
|
end
|
42
42
|
|
43
43
|
it 'expects database to throw an error when tokens are the same' do
|
44
|
-
token1 =
|
45
|
-
token2 =
|
44
|
+
token1 = FactoryBot.create factory_name
|
45
|
+
token2 = FactoryBot.create factory_name
|
46
46
|
token2.token = token1.token
|
47
47
|
expect do
|
48
48
|
token2.save!(validate: false)
|
@@ -2,7 +2,7 @@ require 'spec_helper_integration'
|
|
2
2
|
|
3
3
|
describe RedirectUriValidator do
|
4
4
|
subject do
|
5
|
-
|
5
|
+
FactoryBot.create(:application)
|
6
6
|
end
|
7
7
|
|
8
8
|
it 'is valid when the uri is a uri' do
|
@@ -10,6 +10,21 @@ describe RedirectUriValidator do
|
|
10
10
|
expect(subject).to be_valid
|
11
11
|
end
|
12
12
|
|
13
|
+
# Most mobile and desktop operating systems allow apps to register a custom URL
|
14
|
+
# scheme that will launch the app when a URL with that scheme is visited from
|
15
|
+
# the system browser.
|
16
|
+
#
|
17
|
+
# @see https://www.oauth.com/oauth2-servers/redirect-uris/redirect-uris-native-apps/
|
18
|
+
it 'is valid when the uri is custom native URI' do
|
19
|
+
subject.redirect_uri = 'myapp://callback'
|
20
|
+
expect(subject).to be_valid
|
21
|
+
end
|
22
|
+
|
23
|
+
it 'is valid when the uri has a query parameter' do
|
24
|
+
subject.redirect_uri = 'https://example.com/abcd?xyz=123'
|
25
|
+
expect(subject).to be_valid
|
26
|
+
end
|
27
|
+
|
13
28
|
it 'accepts native redirect uri' do
|
14
29
|
subject.redirect_uri = 'urn:ietf:wg:oauth:2.0:oob'
|
15
30
|
expect(subject).to be_valid
|
@@ -39,11 +54,6 @@ describe RedirectUriValidator do
|
|
39
54
|
expect(subject.errors[:redirect_uri].first).to eq('cannot contain a fragment.')
|
40
55
|
end
|
41
56
|
|
42
|
-
it 'is invalid when the uri has a query parameter' do
|
43
|
-
subject.redirect_uri = 'https://example.com/abcd?xyz=123'
|
44
|
-
expect(subject).to be_valid
|
45
|
-
end
|
46
|
-
|
47
57
|
context 'force secured uri' do
|
48
58
|
it 'accepts an valid uri' do
|
49
59
|
subject.redirect_uri = 'https://example.com/callback'
|
@@ -68,6 +78,34 @@ describe RedirectUriValidator do
|
|
68
78
|
expect(subject).to be_valid
|
69
79
|
end
|
70
80
|
|
81
|
+
it 'accepts a non secured protocol when conditional option defined' do
|
82
|
+
Doorkeeper.configure do
|
83
|
+
orm DOORKEEPER_ORM
|
84
|
+
force_ssl_in_redirect_uri { |uri| uri.host != 'localhost' }
|
85
|
+
end
|
86
|
+
|
87
|
+
application = FactoryBot.build(:application, redirect_uri: 'http://localhost/callback')
|
88
|
+
expect(application).to be_valid
|
89
|
+
|
90
|
+
application = FactoryBot.build(:application, redirect_uri: 'http://localhost2/callback')
|
91
|
+
expect(application).not_to be_valid
|
92
|
+
end
|
93
|
+
|
94
|
+
it 'forbids redirect uri if required' do
|
95
|
+
subject.redirect_uri = 'javascript://document.cookie'
|
96
|
+
|
97
|
+
Doorkeeper.configure do
|
98
|
+
orm DOORKEEPER_ORM
|
99
|
+
forbid_redirect_uri { |uri| uri.scheme == 'javascript' }
|
100
|
+
end
|
101
|
+
|
102
|
+
expect(subject).to be_invalid
|
103
|
+
expect(subject.errors[:redirect_uri].first).to eq('is forbidden by the server.')
|
104
|
+
|
105
|
+
subject.redirect_uri = 'https://localhost/callback'
|
106
|
+
expect(subject).to be_valid
|
107
|
+
end
|
108
|
+
|
71
109
|
it 'invalidates the uri when the uri does not use a secure protocol' do
|
72
110
|
subject.redirect_uri = 'http://example.com/callback'
|
73
111
|
expect(subject).not_to be_valid
|
@@ -75,4 +113,11 @@ describe RedirectUriValidator do
|
|
75
113
|
expect(error).to eq('must be an HTTPS/SSL URI.')
|
76
114
|
end
|
77
115
|
end
|
116
|
+
|
117
|
+
context 'multiple redirect uri' do
|
118
|
+
it 'invalidates the second uri when the first uri is native uri' do
|
119
|
+
subject.redirect_uri = "urn:ietf:wg:oauth:2.0:oob\nexample.com/callback"
|
120
|
+
expect(subject).to be_invalid
|
121
|
+
end
|
122
|
+
end
|
78
123
|
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
require 'spec_helper_integration'
|
2
|
+
|
3
|
+
describe 'Doorkeeper version' do
|
4
|
+
context '#gem_version' do
|
5
|
+
it 'returns Gem::Version instance' do
|
6
|
+
expect(Doorkeeper.gem_version).to be_an_instance_of(Gem::Version)
|
7
|
+
end
|
8
|
+
end
|
9
|
+
|
10
|
+
context 'VERSION' do
|
11
|
+
it 'returns gem version string' do
|
12
|
+
expect(Doorkeeper::VERSION::STRING).to match(/^\d+\.\d+\.\d+[.\w]?$/)
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
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: 4.
|
4
|
+
version: 4.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Felipe Elias Philipp
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date:
|
13
|
+
date: 2018-02-23 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: railties
|
@@ -54,34 +54,48 @@ dependencies:
|
|
54
54
|
- - ">="
|
55
55
|
- !ruby/object:Gem::Version
|
56
56
|
version: '0'
|
57
|
+
- !ruby/object:Gem::Dependency
|
58
|
+
name: grape
|
59
|
+
requirement: !ruby/object:Gem::Requirement
|
60
|
+
requirements:
|
61
|
+
- - ">="
|
62
|
+
- !ruby/object:Gem::Version
|
63
|
+
version: '0'
|
64
|
+
type: :development
|
65
|
+
prerelease: false
|
66
|
+
version_requirements: !ruby/object:Gem::Requirement
|
67
|
+
requirements:
|
68
|
+
- - ">="
|
69
|
+
- !ruby/object:Gem::Version
|
70
|
+
version: '0'
|
57
71
|
- !ruby/object:Gem::Dependency
|
58
72
|
name: database_cleaner
|
59
73
|
requirement: !ruby/object:Gem::Requirement
|
60
74
|
requirements:
|
61
75
|
- - "~>"
|
62
76
|
- !ruby/object:Gem::Version
|
63
|
-
version: 1.
|
77
|
+
version: '1.6'
|
64
78
|
type: :development
|
65
79
|
prerelease: false
|
66
80
|
version_requirements: !ruby/object:Gem::Requirement
|
67
81
|
requirements:
|
68
82
|
- - "~>"
|
69
83
|
- !ruby/object:Gem::Version
|
70
|
-
version: 1.
|
84
|
+
version: '1.6'
|
71
85
|
- !ruby/object:Gem::Dependency
|
72
|
-
name:
|
86
|
+
name: factory_bot
|
73
87
|
requirement: !ruby/object:Gem::Requirement
|
74
88
|
requirements:
|
75
89
|
- - "~>"
|
76
90
|
- !ruby/object:Gem::Version
|
77
|
-
version: 4.
|
91
|
+
version: '4.8'
|
78
92
|
type: :development
|
79
93
|
prerelease: false
|
80
94
|
version_requirements: !ruby/object:Gem::Requirement
|
81
95
|
requirements:
|
82
96
|
- - "~>"
|
83
97
|
- !ruby/object:Gem::Version
|
84
|
-
version: 4.
|
98
|
+
version: '4.8'
|
85
99
|
- !ruby/object:Gem::Dependency
|
86
100
|
name: generator_spec
|
87
101
|
requirement: !ruby/object:Gem::Requirement
|
@@ -132,11 +146,15 @@ extensions: []
|
|
132
146
|
extra_rdoc_files: []
|
133
147
|
files:
|
134
148
|
- ".coveralls.yml"
|
149
|
+
- ".github/ISSUE_TEMPLATE.md"
|
150
|
+
- ".github/PULL_REQUEST_TEMPLATE.md"
|
135
151
|
- ".gitignore"
|
136
152
|
- ".hound.yml"
|
137
153
|
- ".rspec"
|
154
|
+
- ".rubocop.yml"
|
138
155
|
- ".travis.yml"
|
139
156
|
- Appraisals
|
157
|
+
- CODE_OF_CONDUCT.md
|
140
158
|
- CONTRIBUTING.md
|
141
159
|
- Gemfile
|
142
160
|
- MIT-LICENSE
|
@@ -144,6 +162,7 @@ files:
|
|
144
162
|
- README.md
|
145
163
|
- RELEASING.md
|
146
164
|
- Rakefile
|
165
|
+
- SECURITY.md
|
147
166
|
- app/assets/stylesheets/doorkeeper/admin/application.css
|
148
167
|
- app/assets/stylesheets/doorkeeper/application.css
|
149
168
|
- app/controllers/doorkeeper/application_controller.rb
|
@@ -173,6 +192,8 @@ files:
|
|
173
192
|
- gemfiles/rails_4_2.gemfile
|
174
193
|
- gemfiles/rails_5_0.gemfile
|
175
194
|
- gemfiles/rails_5_1.gemfile
|
195
|
+
- gemfiles/rails_5_2.gemfile
|
196
|
+
- gemfiles/rails_master.gemfile
|
176
197
|
- lib/doorkeeper.rb
|
177
198
|
- lib/doorkeeper/config.rb
|
178
199
|
- lib/doorkeeper/engine.rb
|
@@ -214,12 +235,14 @@ files:
|
|
214
235
|
- lib/doorkeeper/oauth/refresh_token_request.rb
|
215
236
|
- lib/doorkeeper/oauth/scopes.rb
|
216
237
|
- lib/doorkeeper/oauth/token.rb
|
238
|
+
- lib/doorkeeper/oauth/token_introspection.rb
|
217
239
|
- lib/doorkeeper/oauth/token_request.rb
|
218
240
|
- lib/doorkeeper/oauth/token_response.rb
|
219
241
|
- lib/doorkeeper/orm/active_record.rb
|
220
242
|
- lib/doorkeeper/orm/active_record/access_grant.rb
|
221
243
|
- lib/doorkeeper/orm/active_record/access_token.rb
|
222
244
|
- lib/doorkeeper/orm/active_record/application.rb
|
245
|
+
- lib/doorkeeper/orm/active_record/base_record.rb
|
223
246
|
- lib/doorkeeper/rails/helpers.rb
|
224
247
|
- lib/doorkeeper/rails/routes.rb
|
225
248
|
- lib/doorkeeper/rails/routes/mapper.rb
|
@@ -240,10 +263,10 @@ files:
|
|
240
263
|
- lib/generators/doorkeeper/migration_generator.rb
|
241
264
|
- lib/generators/doorkeeper/previous_refresh_token_generator.rb
|
242
265
|
- lib/generators/doorkeeper/templates/README
|
243
|
-
- lib/generators/doorkeeper/templates/add_owner_to_application_migration.rb
|
244
|
-
- lib/generators/doorkeeper/templates/add_previous_refresh_token_to_access_tokens.rb
|
266
|
+
- lib/generators/doorkeeper/templates/add_owner_to_application_migration.rb.erb
|
267
|
+
- lib/generators/doorkeeper/templates/add_previous_refresh_token_to_access_tokens.rb.erb
|
245
268
|
- lib/generators/doorkeeper/templates/initializer.rb
|
246
|
-
- lib/generators/doorkeeper/templates/migration.rb
|
269
|
+
- lib/generators/doorkeeper/templates/migration.rb.erb
|
247
270
|
- lib/generators/doorkeeper/views_generator.rb
|
248
271
|
- spec/controllers/application_metal_controller.rb
|
249
272
|
- spec/controllers/applications_controller_spec.rb
|
@@ -270,9 +293,9 @@ files:
|
|
270
293
|
- spec/dummy/config/environments/development.rb
|
271
294
|
- spec/dummy/config/environments/production.rb
|
272
295
|
- spec/dummy/config/environments/test.rb
|
273
|
-
- spec/dummy/config/initializers/active_record_belongs_to_required_by_default.rb
|
274
296
|
- spec/dummy/config/initializers/backtrace_silencers.rb
|
275
297
|
- spec/dummy/config/initializers/doorkeeper.rb
|
298
|
+
- spec/dummy/config/initializers/new_framework_defaults.rb
|
276
299
|
- spec/dummy/config/initializers/secret_token.rb
|
277
300
|
- spec/dummy/config/initializers/session_store.rb
|
278
301
|
- spec/dummy/config/initializers/wrap_parameters.rb
|
@@ -293,8 +316,10 @@ files:
|
|
293
316
|
- spec/generators/application_owner_generator_spec.rb
|
294
317
|
- spec/generators/install_generator_spec.rb
|
295
318
|
- spec/generators/migration_generator_spec.rb
|
319
|
+
- spec/generators/previous_refresh_token_generator_spec.rb
|
296
320
|
- spec/generators/templates/routes.rb
|
297
321
|
- spec/generators/views_generator_spec.rb
|
322
|
+
- spec/grape/grape_integration_spec.rb
|
298
323
|
- spec/helpers/doorkeeper/dashboard_helper_spec.rb
|
299
324
|
- spec/lib/config_spec.rb
|
300
325
|
- spec/lib/doorkeeper_spec.rb
|
@@ -365,6 +390,7 @@ files:
|
|
365
390
|
- spec/support/shared/controllers_shared_context.rb
|
366
391
|
- spec/support/shared/models_shared_examples.rb
|
367
392
|
- spec/validators/redirect_uri_validator_spec.rb
|
393
|
+
- spec/version/version_spec.rb
|
368
394
|
- vendor/assets/stylesheets/doorkeeper/bootstrap.min.css
|
369
395
|
homepage: https://github.com/doorkeeper-gem/doorkeeper
|
370
396
|
licenses:
|
@@ -386,7 +412,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
386
412
|
version: '0'
|
387
413
|
requirements: []
|
388
414
|
rubyforge_project:
|
389
|
-
rubygems_version: 2.
|
415
|
+
rubygems_version: 2.5.2.2
|
390
416
|
signing_key:
|
391
417
|
specification_version: 4
|
392
418
|
summary: OAuth 2 provider for Rails and Grape
|
@@ -416,9 +442,9 @@ test_files:
|
|
416
442
|
- spec/dummy/config/environments/development.rb
|
417
443
|
- spec/dummy/config/environments/production.rb
|
418
444
|
- spec/dummy/config/environments/test.rb
|
419
|
-
- spec/dummy/config/initializers/active_record_belongs_to_required_by_default.rb
|
420
445
|
- spec/dummy/config/initializers/backtrace_silencers.rb
|
421
446
|
- spec/dummy/config/initializers/doorkeeper.rb
|
447
|
+
- spec/dummy/config/initializers/new_framework_defaults.rb
|
422
448
|
- spec/dummy/config/initializers/secret_token.rb
|
423
449
|
- spec/dummy/config/initializers/session_store.rb
|
424
450
|
- spec/dummy/config/initializers/wrap_parameters.rb
|
@@ -439,8 +465,10 @@ test_files:
|
|
439
465
|
- spec/generators/application_owner_generator_spec.rb
|
440
466
|
- spec/generators/install_generator_spec.rb
|
441
467
|
- spec/generators/migration_generator_spec.rb
|
468
|
+
- spec/generators/previous_refresh_token_generator_spec.rb
|
442
469
|
- spec/generators/templates/routes.rb
|
443
470
|
- spec/generators/views_generator_spec.rb
|
471
|
+
- spec/grape/grape_integration_spec.rb
|
444
472
|
- spec/helpers/doorkeeper/dashboard_helper_spec.rb
|
445
473
|
- spec/lib/config_spec.rb
|
446
474
|
- spec/lib/doorkeeper_spec.rb
|
@@ -511,3 +539,4 @@ test_files:
|
|
511
539
|
- spec/support/shared/controllers_shared_context.rb
|
512
540
|
- spec/support/shared/models_shared_examples.rb
|
513
541
|
- spec/validators/redirect_uri_validator_spec.rb
|
542
|
+
- spec/version/version_spec.rb
|