doorkeeper 0.1.1 → 0.2.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.
- data/README.md +42 -14
- data/Rakefile +1 -1
- data/app/assets/stylesheets/doorkeeper/application.css +4 -0
- data/app/controllers/doorkeeper/application_controller.rb +2 -2
- data/app/controllers/doorkeeper/application_controller.rbc +32 -20
- data/app/controllers/doorkeeper/authorizations_controller.rbc +86 -22
- data/app/controllers/doorkeeper/authorized_applications_controller.rb +13 -0
- data/app/controllers/doorkeeper/authorized_applications_controller.rbc +393 -0
- data/app/controllers/doorkeeper/tokens_controller.rb +4 -0
- data/app/models/access_grant.rb +8 -0
- data/app/models/access_grant.rbc +204 -39
- data/app/models/access_token.rb +31 -3
- data/app/models/access_token.rbc +270 -72
- data/app/models/application.rb +8 -1
- data/app/models/application.rbc +307 -61
- data/app/views/doorkeeper/authorizations/new.html.erb +17 -0
- data/app/views/doorkeeper/authorized_applications/index.html.erb +26 -0
- data/config/routes.rb +1 -0
- data/config/routes.rbc +48 -4
- data/lib/doorkeeper/config.rb +82 -22
- data/lib/doorkeeper/config.rbc +739 -295
- data/lib/doorkeeper/config/scope.rb +11 -0
- data/lib/doorkeeper/config/scopes.rb +57 -0
- data/lib/doorkeeper/config/scopes_builder.rb +18 -0
- data/lib/doorkeeper/doorkeeper_for.rb +96 -16
- data/lib/doorkeeper/oauth/access_token_request.rb +57 -18
- data/lib/doorkeeper/oauth/access_token_request.rbc +256 -67
- data/lib/doorkeeper/oauth/authorization_request.rb +31 -4
- data/lib/doorkeeper/oauth/authorization_request.rbc +230 -65
- data/lib/doorkeeper/version.rb +1 -1
- data/lib/doorkeeper/version.rbc +1 -1
- data/lib/generators/doorkeeper/templates/README +3 -0
- data/lib/generators/doorkeeper/templates/initializer.rb +13 -0
- data/lib/generators/doorkeeper/templates/migration.rb +4 -1
- metadata +35 -18
@@ -0,0 +1,57 @@
|
|
1
|
+
module Doorkeeper
|
2
|
+
class Scopes
|
3
|
+
include Enumerable
|
4
|
+
REQUIRED_ELEMENT_METHOD = [:name, :default]
|
5
|
+
|
6
|
+
class IllegalElement < StandardError; end
|
7
|
+
|
8
|
+
delegate :each, :to => :@scopes
|
9
|
+
|
10
|
+
def initialize
|
11
|
+
@scopes = []
|
12
|
+
end
|
13
|
+
|
14
|
+
def [](name)
|
15
|
+
select do |scope|
|
16
|
+
scope.name.to_sym == name.to_sym
|
17
|
+
end.first
|
18
|
+
end
|
19
|
+
|
20
|
+
def exists? (scope)
|
21
|
+
self[scope].present?
|
22
|
+
end
|
23
|
+
|
24
|
+
def add (scope)
|
25
|
+
raise IllegalElement unless valid_element?(scope)
|
26
|
+
@scopes << scope
|
27
|
+
end
|
28
|
+
|
29
|
+
def all
|
30
|
+
@scopes
|
31
|
+
end
|
32
|
+
|
33
|
+
def defaults
|
34
|
+
select do |scope|
|
35
|
+
scope.default
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
def default_scope_string
|
40
|
+
defaults.map(&:name).join(" ")
|
41
|
+
end
|
42
|
+
|
43
|
+
def with_names(*names)
|
44
|
+
names = names.map(&:to_sym)
|
45
|
+
select do |scope|
|
46
|
+
names.include? scope.name.to_sym
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
private
|
51
|
+
def valid_element?(scope)
|
52
|
+
REQUIRED_ELEMENT_METHOD.all? do |method|
|
53
|
+
scope.respond_to? method
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
module Doorkeeper
|
2
|
+
class Config
|
3
|
+
class ScopesBuilder
|
4
|
+
def initialize(&block)
|
5
|
+
@scopes = Doorkeeper::Scopes.new
|
6
|
+
instance_eval &block
|
7
|
+
end
|
8
|
+
|
9
|
+
def build
|
10
|
+
@scopes
|
11
|
+
end
|
12
|
+
|
13
|
+
def scope(name, options)
|
14
|
+
@scopes.add Doorkeeper::Scope.new(name, options)
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -1,28 +1,108 @@
|
|
1
1
|
module Doorkeeper
|
2
|
+
class InvalidSyntax < StandardError; end
|
3
|
+
class DoorkeeperFor
|
4
|
+
def initialize(options)
|
5
|
+
options ||= {}
|
6
|
+
raise InvalidSyntax unless options.is_a? Hash
|
7
|
+
|
8
|
+
options.each do |k, v|
|
9
|
+
self.send(k, v)
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
|
14
|
+
def validate_token(token)
|
15
|
+
return false unless token
|
16
|
+
token.accessible? and validate_token_scopes(token)
|
17
|
+
end
|
18
|
+
|
19
|
+
def filter_options
|
20
|
+
{}
|
21
|
+
end
|
22
|
+
|
23
|
+
private
|
24
|
+
def scopes(scopes)
|
25
|
+
@scopes = scopes
|
26
|
+
end
|
27
|
+
|
28
|
+
def validate_token_scopes(token)
|
29
|
+
return true if @scopes.blank?
|
30
|
+
token.scopes.any? { |scope| @scopes.include? scope}
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
class AllDoorkeeperFor < DoorkeeperFor
|
35
|
+
def filter_options
|
36
|
+
@except ? {:except => @except} : {}
|
37
|
+
end
|
38
|
+
|
39
|
+
private
|
40
|
+
def except(actions)
|
41
|
+
@except = actions
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
class SelectedDoorkeeperFor < DoorkeeperFor
|
46
|
+
def initialize(*args)
|
47
|
+
options = args.pop if args.last.is_a? Hash
|
48
|
+
only(args)
|
49
|
+
super(options)
|
50
|
+
end
|
51
|
+
|
52
|
+
def filter_options
|
53
|
+
{:only => @only}
|
54
|
+
end
|
55
|
+
|
56
|
+
private
|
57
|
+
def only(actions)
|
58
|
+
@only = actions
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
62
|
+
class DoorkeeperForBuilder
|
63
|
+
def self.create_doorkeeper_for(*args)
|
64
|
+
case args.first
|
65
|
+
when :all
|
66
|
+
AllDoorkeeperFor.new(args[1] || {})
|
67
|
+
when Hash
|
68
|
+
handle_hash(args.first)
|
69
|
+
when nil
|
70
|
+
raise InvalidSyntax
|
71
|
+
else
|
72
|
+
SelectedDoorkeeperFor.new(*args)
|
73
|
+
end
|
74
|
+
end
|
75
|
+
|
76
|
+
def self.handle_hash(hash)
|
77
|
+
if hash.has_key?(:only)
|
78
|
+
warn "DEPRECATED: :only option. Put the actions you want doorkeeper to take care of after doorkeeper_for eg: doorkeeper_for :index, :new"
|
79
|
+
args = [hash[:only], hash.except(:only)]
|
80
|
+
return create_doorkeeper_for(*args)
|
81
|
+
end
|
82
|
+
|
83
|
+
if hash.has_key?(:except)
|
84
|
+
warn "DEPRECATED: :except option. Use in connection with :all -> doorkeeper_for :all, :except => "
|
85
|
+
return create_doorkeeper_for(:all, hash)
|
86
|
+
end
|
87
|
+
|
88
|
+
raise InvalidSyntax
|
89
|
+
end
|
90
|
+
end
|
91
|
+
|
2
92
|
module Controller
|
3
93
|
module ClassMethods
|
4
|
-
def doorkeeper_for(
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
else
|
10
|
-
before_filter :doorkeeper_before_filter
|
94
|
+
def doorkeeper_for(*args)
|
95
|
+
doorkeeper_for = DoorkeeperForBuilder.create_doorkeeper_for(*args)
|
96
|
+
|
97
|
+
before_filter doorkeeper_for.filter_options do
|
98
|
+
head :unauthorized unless doorkeeper_for.validate_token(doorkeeper_token)
|
11
99
|
end
|
12
100
|
end
|
13
101
|
end
|
14
102
|
|
15
103
|
def self.included(base)
|
16
104
|
base.extend ClassMethods
|
17
|
-
base.send(:private, :
|
18
|
-
end
|
19
|
-
|
20
|
-
def doorkeeper_before_filter
|
21
|
-
head :unauthorized unless doorkeeper_valid_token
|
22
|
-
end
|
23
|
-
|
24
|
-
def doorkeeper_valid_token
|
25
|
-
doorkeeper_token and doorkeeper_token.accessible?
|
105
|
+
base.send(:private, :doorkeeper_token, :get_doorkeeper_token)
|
26
106
|
end
|
27
107
|
|
28
108
|
def doorkeeper_token
|
@@ -8,12 +8,14 @@ module Doorkeeper::OAuth
|
|
8
8
|
:grant_type,
|
9
9
|
:code,
|
10
10
|
:redirect_uri,
|
11
|
+
:refresh_token,
|
11
12
|
]
|
12
13
|
|
13
|
-
validate :attributes,
|
14
|
-
validate :
|
15
|
-
validate :
|
16
|
-
validate :
|
14
|
+
validate :attributes, :error => :invalid_request
|
15
|
+
validate :grant_type, :error => :unsupported_grant_type
|
16
|
+
validate :client, :error => :invalid_client
|
17
|
+
validate :grant, :error => :invalid_grant
|
18
|
+
validate :redirect_uri, :error => :invalid_grant
|
17
19
|
|
18
20
|
attr_accessor *ATTRIBUTES
|
19
21
|
|
@@ -24,15 +26,19 @@ module Doorkeeper::OAuth
|
|
24
26
|
|
25
27
|
def authorize
|
26
28
|
if valid?
|
27
|
-
|
29
|
+
revoke_base_token
|
28
30
|
create_access_token
|
29
31
|
end
|
30
32
|
end
|
31
33
|
|
32
34
|
def authorization
|
33
|
-
|
34
|
-
'
|
35
|
+
auth = {
|
36
|
+
'access_token' => access_token.token,
|
37
|
+
'token_type' => token_type,
|
38
|
+
'expires_in' => access_token.expires_in,
|
35
39
|
}
|
40
|
+
auth.merge!({'refresh_token' => access_token.refresh_token}) if refresh_token_enabled?
|
41
|
+
auth
|
36
42
|
end
|
37
43
|
|
38
44
|
def valid?
|
@@ -40,7 +46,7 @@ module Doorkeeper::OAuth
|
|
40
46
|
end
|
41
47
|
|
42
48
|
def access_token
|
43
|
-
@access_token
|
49
|
+
@access_token
|
44
50
|
end
|
45
51
|
|
46
52
|
def token_type
|
@@ -53,27 +59,51 @@ module Doorkeeper::OAuth
|
|
53
59
|
|
54
60
|
private
|
55
61
|
|
56
|
-
def
|
57
|
-
|
58
|
-
end
|
59
|
-
|
60
|
-
def revoke_grant
|
61
|
-
grant.revoke
|
62
|
+
def revoke_base_token
|
63
|
+
base_token.revoke
|
62
64
|
end
|
63
65
|
|
64
66
|
def client
|
65
67
|
@client ||= Application.find_by_uid_and_secret(@client_id, @client_secret)
|
66
68
|
end
|
67
69
|
|
70
|
+
def base_token
|
71
|
+
@base_token ||= refresh_token? ? token_via_refresh_token : token_via_authorization_code
|
72
|
+
end
|
73
|
+
|
74
|
+
def token_via_authorization_code
|
75
|
+
AccessGrant.find_by_token(code)
|
76
|
+
end
|
77
|
+
|
78
|
+
def token_via_refresh_token
|
79
|
+
AccessToken.find_by_refresh_token(refresh_token)
|
80
|
+
end
|
81
|
+
|
68
82
|
def create_access_token
|
69
83
|
@access_token = AccessToken.create!({
|
70
84
|
:application_id => client.id,
|
71
|
-
:resource_owner_id =>
|
85
|
+
:resource_owner_id => base_token.resource_owner_id,
|
86
|
+
:scopes => base_token.scopes_string,
|
87
|
+
:expires_in => configuration.access_token_expires_in,
|
88
|
+
:use_refresh_token => refresh_token_enabled?
|
72
89
|
})
|
73
90
|
end
|
74
91
|
|
75
92
|
def validate_attributes
|
76
|
-
|
93
|
+
return false unless grant_type.present?
|
94
|
+
if refresh_token_enabled? && refresh_token?
|
95
|
+
refresh_token.present?
|
96
|
+
else
|
97
|
+
code.present? && redirect_uri.present?
|
98
|
+
end
|
99
|
+
end
|
100
|
+
|
101
|
+
def refresh_token_enabled?
|
102
|
+
configuration.refresh_token_enabled?
|
103
|
+
end
|
104
|
+
|
105
|
+
def refresh_token?
|
106
|
+
grant_type == "refresh_token"
|
77
107
|
end
|
78
108
|
|
79
109
|
def validate_client
|
@@ -81,11 +111,20 @@ module Doorkeeper::OAuth
|
|
81
111
|
end
|
82
112
|
|
83
113
|
def validate_grant
|
84
|
-
|
114
|
+
return false unless base_token && base_token.application_id == client.id
|
115
|
+
refresh_token? ? !base_token.revoked? : base_token.accessible?
|
116
|
+
end
|
117
|
+
|
118
|
+
def validate_redirect_uri
|
119
|
+
refresh_token? ? true : base_token.redirect_uri == redirect_uri
|
85
120
|
end
|
86
121
|
|
87
122
|
def validate_grant_type
|
88
|
-
|
123
|
+
%w(authorization_code refresh_token).include? grant_type
|
124
|
+
end
|
125
|
+
|
126
|
+
def configuration
|
127
|
+
Doorkeeper.configuration
|
89
128
|
end
|
90
129
|
end
|
91
130
|
end
|
@@ -130,7 +130,7 @@ x
|
|
130
130
|
18
|
131
131
|
AccessTokenRequest
|
132
132
|
i
|
133
|
-
|
133
|
+
367
|
134
134
|
5
|
135
135
|
66
|
136
136
|
5
|
@@ -388,9 +388,9 @@ i
|
|
388
388
|
15
|
389
389
|
99
|
390
390
|
7
|
391
|
-
18
|
392
|
-
7
|
393
391
|
43
|
392
|
+
7
|
393
|
+
44
|
394
394
|
65
|
395
395
|
67
|
396
396
|
49
|
@@ -402,7 +402,7 @@ i
|
|
402
402
|
15
|
403
403
|
99
|
404
404
|
7
|
405
|
-
|
405
|
+
18
|
406
406
|
7
|
407
407
|
45
|
408
408
|
65
|
@@ -469,6 +469,34 @@ i
|
|
469
469
|
49
|
470
470
|
28
|
471
471
|
4
|
472
|
+
15
|
473
|
+
99
|
474
|
+
7
|
475
|
+
54
|
476
|
+
7
|
477
|
+
55
|
478
|
+
65
|
479
|
+
67
|
480
|
+
49
|
481
|
+
27
|
482
|
+
0
|
483
|
+
49
|
484
|
+
28
|
485
|
+
4
|
486
|
+
15
|
487
|
+
99
|
488
|
+
7
|
489
|
+
56
|
490
|
+
7
|
491
|
+
57
|
492
|
+
65
|
493
|
+
67
|
494
|
+
49
|
495
|
+
27
|
496
|
+
0
|
497
|
+
49
|
498
|
+
28
|
499
|
+
4
|
472
500
|
11
|
473
501
|
I
|
474
502
|
7
|
@@ -480,7 +508,7 @@ I
|
|
480
508
|
0
|
481
509
|
n
|
482
510
|
p
|
483
|
-
|
511
|
+
58
|
484
512
|
x
|
485
513
|
10
|
486
514
|
Doorkeeper
|
@@ -739,19 +767,23 @@ x
|
|
739
767
|
9
|
740
768
|
authorize
|
741
769
|
i
|
742
|
-
|
770
|
+
18
|
743
771
|
5
|
744
772
|
47
|
745
773
|
49
|
746
774
|
0
|
747
775
|
0
|
748
776
|
9
|
749
|
-
|
777
|
+
16
|
750
778
|
5
|
751
779
|
48
|
752
780
|
1
|
781
|
+
15
|
782
|
+
5
|
783
|
+
48
|
784
|
+
2
|
753
785
|
8
|
754
|
-
|
786
|
+
17
|
755
787
|
1
|
756
788
|
11
|
757
789
|
I
|
@@ -764,15 +796,18 @@ I
|
|
764
796
|
0
|
765
797
|
n
|
766
798
|
p
|
767
|
-
|
799
|
+
3
|
768
800
|
x
|
769
801
|
6
|
770
802
|
valid?
|
771
803
|
x
|
804
|
+
12
|
805
|
+
revoke_grant
|
806
|
+
x
|
772
807
|
19
|
773
808
|
create_access_token
|
774
809
|
p
|
775
|
-
|
810
|
+
13
|
776
811
|
I
|
777
812
|
-1
|
778
813
|
I
|
@@ -782,11 +817,23 @@ I
|
|
782
817
|
I
|
783
818
|
1a
|
784
819
|
I
|
785
|
-
|
820
|
+
7
|
821
|
+
I
|
822
|
+
1b
|
823
|
+
I
|
824
|
+
b
|
825
|
+
I
|
826
|
+
1c
|
827
|
+
I
|
828
|
+
10
|
829
|
+
I
|
830
|
+
1a
|
831
|
+
I
|
832
|
+
11
|
786
833
|
I
|
787
834
|
0
|
788
835
|
I
|
789
|
-
|
836
|
+
12
|
790
837
|
x
|
791
838
|
84
|
792
839
|
/Users/felipeelias/Applicake/doorkeeper/lib/doorkeeper/oauth/access_token_request.rb
|
@@ -871,19 +918,19 @@ p
|
|
871
918
|
I
|
872
919
|
-1
|
873
920
|
I
|
874
|
-
|
921
|
+
20
|
875
922
|
I
|
876
923
|
0
|
877
924
|
I
|
878
|
-
|
925
|
+
23
|
879
926
|
I
|
880
927
|
8
|
881
928
|
I
|
882
|
-
|
929
|
+
21
|
883
930
|
I
|
884
931
|
13
|
885
932
|
I
|
886
|
-
|
933
|
+
22
|
887
934
|
I
|
888
935
|
1e
|
889
936
|
x
|
@@ -933,11 +980,11 @@ p
|
|
933
980
|
I
|
934
981
|
-1
|
935
982
|
I
|
936
|
-
|
983
|
+
26
|
937
984
|
I
|
938
985
|
0
|
939
986
|
I
|
940
|
-
|
987
|
+
27
|
941
988
|
I
|
942
989
|
8
|
943
990
|
x
|
@@ -985,11 +1032,11 @@ p
|
|
985
1032
|
I
|
986
1033
|
-1
|
987
1034
|
I
|
988
|
-
|
1035
|
+
2a
|
989
1036
|
I
|
990
1037
|
0
|
991
1038
|
I
|
992
|
-
|
1039
|
+
2b
|
993
1040
|
I
|
994
1041
|
6
|
995
1042
|
x
|
@@ -1032,11 +1079,11 @@ p
|
|
1032
1079
|
I
|
1033
1080
|
-1
|
1034
1081
|
I
|
1035
|
-
|
1082
|
+
2e
|
1036
1083
|
I
|
1037
1084
|
0
|
1038
1085
|
I
|
1039
|
-
|
1086
|
+
2f
|
1040
1087
|
I
|
1041
1088
|
4
|
1042
1089
|
x
|
@@ -1112,11 +1159,11 @@ p
|
|
1112
1159
|
I
|
1113
1160
|
-1
|
1114
1161
|
I
|
1115
|
-
|
1162
|
+
32
|
1116
1163
|
I
|
1117
1164
|
0
|
1118
1165
|
I
|
1119
|
-
|
1166
|
+
33
|
1120
1167
|
I
|
1121
1168
|
16
|
1122
1169
|
x
|
@@ -1182,11 +1229,11 @@ p
|
|
1182
1229
|
I
|
1183
1230
|
-1
|
1184
1231
|
I
|
1185
|
-
|
1232
|
+
38
|
1186
1233
|
I
|
1187
1234
|
0
|
1188
1235
|
I
|
1189
|
-
|
1236
|
+
39
|
1190
1237
|
I
|
1191
1238
|
11
|
1192
1239
|
x
|
@@ -1194,6 +1241,59 @@ x
|
|
1194
1241
|
/Users/felipeelias/Applicake/doorkeeper/lib/doorkeeper/oauth/access_token_request.rb
|
1195
1242
|
p
|
1196
1243
|
0
|
1244
|
+
x
|
1245
|
+
12
|
1246
|
+
revoke_grant
|
1247
|
+
M
|
1248
|
+
1
|
1249
|
+
n
|
1250
|
+
n
|
1251
|
+
x
|
1252
|
+
12
|
1253
|
+
revoke_grant
|
1254
|
+
i
|
1255
|
+
7
|
1256
|
+
5
|
1257
|
+
48
|
1258
|
+
0
|
1259
|
+
49
|
1260
|
+
1
|
1261
|
+
0
|
1262
|
+
11
|
1263
|
+
I
|
1264
|
+
1
|
1265
|
+
I
|
1266
|
+
0
|
1267
|
+
I
|
1268
|
+
0
|
1269
|
+
I
|
1270
|
+
0
|
1271
|
+
n
|
1272
|
+
p
|
1273
|
+
2
|
1274
|
+
x
|
1275
|
+
5
|
1276
|
+
grant
|
1277
|
+
x
|
1278
|
+
6
|
1279
|
+
revoke
|
1280
|
+
p
|
1281
|
+
5
|
1282
|
+
I
|
1283
|
+
-1
|
1284
|
+
I
|
1285
|
+
3c
|
1286
|
+
I
|
1287
|
+
0
|
1288
|
+
I
|
1289
|
+
3d
|
1290
|
+
I
|
1291
|
+
7
|
1292
|
+
x
|
1293
|
+
84
|
1294
|
+
/Users/felipeelias/Applicake/doorkeeper/lib/doorkeeper/oauth/access_token_request.rb
|
1295
|
+
p
|
1296
|
+
0
|
1197
1297
|
M
|
1198
1298
|
1
|
1199
1299
|
n
|
@@ -1254,11 +1354,11 @@ p
|
|
1254
1354
|
I
|
1255
1355
|
-1
|
1256
1356
|
I
|
1257
|
-
|
1357
|
+
40
|
1258
1358
|
I
|
1259
1359
|
0
|
1260
1360
|
I
|
1261
|
-
|
1361
|
+
41
|
1262
1362
|
I
|
1263
1363
|
13
|
1264
1364
|
x
|
@@ -1277,14 +1377,15 @@ x
|
|
1277
1377
|
19
|
1278
1378
|
create_access_token
|
1279
1379
|
i
|
1280
|
-
|
1380
|
+
56
|
1281
1381
|
45
|
1282
1382
|
0
|
1283
1383
|
1
|
1284
1384
|
44
|
1285
1385
|
43
|
1286
1386
|
2
|
1287
|
-
|
1387
|
+
4
|
1388
|
+
3
|
1288
1389
|
49
|
1289
1390
|
3
|
1290
1391
|
1
|
@@ -1314,11 +1415,24 @@ i
|
|
1314
1415
|
7
|
1315
1416
|
2
|
1316
1417
|
15
|
1317
|
-
|
1418
|
+
13
|
1419
|
+
7
|
1318
1420
|
10
|
1421
|
+
5
|
1422
|
+
48
|
1423
|
+
11
|
1424
|
+
49
|
1425
|
+
12
|
1426
|
+
0
|
1427
|
+
49
|
1428
|
+
7
|
1429
|
+
2
|
1430
|
+
15
|
1431
|
+
49
|
1432
|
+
13
|
1319
1433
|
1
|
1320
1434
|
38
|
1321
|
-
|
1435
|
+
14
|
1322
1436
|
11
|
1323
1437
|
I
|
1324
1438
|
5
|
@@ -1330,7 +1444,7 @@ I
|
|
1330
1444
|
0
|
1331
1445
|
n
|
1332
1446
|
p
|
1333
|
-
|
1447
|
+
15
|
1334
1448
|
x
|
1335
1449
|
11
|
1336
1450
|
AccessToken
|
@@ -1348,8 +1462,8 @@ x
|
|
1348
1462
|
6
|
1349
1463
|
client
|
1350
1464
|
x
|
1351
|
-
|
1352
|
-
|
1465
|
+
2
|
1466
|
+
id
|
1353
1467
|
x
|
1354
1468
|
3
|
1355
1469
|
[]=
|
@@ -1360,39 +1474,52 @@ x
|
|
1360
1474
|
5
|
1361
1475
|
grant
|
1362
1476
|
x
|
1477
|
+
10
|
1478
|
+
expires_in
|
1479
|
+
x
|
1480
|
+
13
|
1481
|
+
configuration
|
1482
|
+
x
|
1483
|
+
23
|
1484
|
+
access_token_expires_in
|
1485
|
+
x
|
1363
1486
|
7
|
1364
1487
|
create!
|
1365
1488
|
x
|
1366
1489
|
13
|
1367
1490
|
@access_token
|
1368
1491
|
p
|
1369
|
-
|
1492
|
+
15
|
1370
1493
|
I
|
1371
1494
|
-1
|
1372
1495
|
I
|
1373
|
-
|
1496
|
+
44
|
1374
1497
|
I
|
1375
1498
|
0
|
1376
1499
|
I
|
1377
|
-
|
1500
|
+
45
|
1378
1501
|
I
|
1379
1502
|
3
|
1380
1503
|
I
|
1381
|
-
|
1504
|
+
49
|
1382
1505
|
I
|
1383
|
-
|
1506
|
+
c
|
1384
1507
|
I
|
1385
|
-
|
1508
|
+
46
|
1386
1509
|
I
|
1387
|
-
|
1510
|
+
19
|
1388
1511
|
I
|
1389
|
-
|
1512
|
+
47
|
1390
1513
|
I
|
1391
|
-
|
1514
|
+
26
|
1392
1515
|
I
|
1393
|
-
|
1516
|
+
48
|
1394
1517
|
I
|
1395
|
-
|
1518
|
+
32
|
1519
|
+
I
|
1520
|
+
45
|
1521
|
+
I
|
1522
|
+
38
|
1396
1523
|
x
|
1397
1524
|
84
|
1398
1525
|
/Users/felipeelias/Applicake/doorkeeper/lib/doorkeeper/oauth/access_token_request.rb
|
@@ -1465,11 +1592,11 @@ p
|
|
1465
1592
|
I
|
1466
1593
|
-1
|
1467
1594
|
I
|
1468
|
-
|
1595
|
+
4c
|
1469
1596
|
I
|
1470
1597
|
0
|
1471
1598
|
I
|
1472
|
-
|
1599
|
+
4d
|
1473
1600
|
I
|
1474
1601
|
1b
|
1475
1602
|
x
|
@@ -1524,11 +1651,11 @@ p
|
|
1524
1651
|
I
|
1525
1652
|
-1
|
1526
1653
|
I
|
1527
|
-
|
1654
|
+
50
|
1528
1655
|
I
|
1529
1656
|
0
|
1530
1657
|
I
|
1531
|
-
|
1658
|
+
51
|
1532
1659
|
I
|
1533
1660
|
10
|
1534
1661
|
x
|
@@ -1632,11 +1759,11 @@ p
|
|
1632
1759
|
I
|
1633
1760
|
-1
|
1634
1761
|
I
|
1635
|
-
|
1762
|
+
54
|
1636
1763
|
I
|
1637
1764
|
0
|
1638
1765
|
I
|
1639
|
-
|
1766
|
+
55
|
1640
1767
|
I
|
1641
1768
|
2f
|
1642
1769
|
x
|
@@ -1690,11 +1817,11 @@ p
|
|
1690
1817
|
I
|
1691
1818
|
-1
|
1692
1819
|
I
|
1693
|
-
|
1820
|
+
58
|
1694
1821
|
I
|
1695
1822
|
0
|
1696
1823
|
I
|
1697
|
-
|
1824
|
+
59
|
1698
1825
|
I
|
1699
1826
|
9
|
1700
1827
|
x
|
@@ -1702,8 +1829,62 @@ x
|
|
1702
1829
|
/Users/felipeelias/Applicake/doorkeeper/lib/doorkeeper/oauth/access_token_request.rb
|
1703
1830
|
p
|
1704
1831
|
0
|
1832
|
+
x
|
1833
|
+
13
|
1834
|
+
configuration
|
1835
|
+
M
|
1836
|
+
1
|
1837
|
+
n
|
1838
|
+
n
|
1839
|
+
x
|
1840
|
+
13
|
1841
|
+
configuration
|
1842
|
+
i
|
1843
|
+
7
|
1844
|
+
45
|
1845
|
+
0
|
1846
|
+
1
|
1847
|
+
49
|
1848
|
+
2
|
1849
|
+
0
|
1850
|
+
11
|
1851
|
+
I
|
1852
|
+
1
|
1853
|
+
I
|
1854
|
+
0
|
1855
|
+
I
|
1856
|
+
0
|
1857
|
+
I
|
1858
|
+
0
|
1859
|
+
n
|
1860
|
+
p
|
1861
|
+
3
|
1862
|
+
x
|
1863
|
+
10
|
1864
|
+
Doorkeeper
|
1865
|
+
n
|
1866
|
+
x
|
1867
|
+
13
|
1868
|
+
configuration
|
1869
|
+
p
|
1870
|
+
5
|
1871
|
+
I
|
1872
|
+
-1
|
1873
|
+
I
|
1874
|
+
5c
|
1875
|
+
I
|
1876
|
+
0
|
1877
|
+
I
|
1878
|
+
5d
|
1879
|
+
I
|
1880
|
+
7
|
1881
|
+
x
|
1882
|
+
84
|
1883
|
+
/Users/felipeelias/Applicake/doorkeeper/lib/doorkeeper/oauth/access_token_request.rb
|
1884
|
+
p
|
1885
|
+
0
|
1705
1886
|
p
|
1706
|
-
|
1887
|
+
59
|
1707
1888
|
I
|
1708
1889
|
2
|
1709
1890
|
I
|
@@ -1763,39 +1944,39 @@ I
|
|
1763
1944
|
I
|
1764
1945
|
a7
|
1765
1946
|
I
|
1766
|
-
|
1947
|
+
20
|
1767
1948
|
I
|
1768
1949
|
b5
|
1769
1950
|
I
|
1770
|
-
|
1951
|
+
26
|
1771
1952
|
I
|
1772
1953
|
c3
|
1773
1954
|
I
|
1774
|
-
|
1955
|
+
2a
|
1775
1956
|
I
|
1776
1957
|
d1
|
1777
1958
|
I
|
1778
|
-
|
1959
|
+
2e
|
1779
1960
|
I
|
1780
1961
|
df
|
1781
1962
|
I
|
1782
|
-
|
1963
|
+
32
|
1783
1964
|
I
|
1784
1965
|
ed
|
1785
1966
|
I
|
1786
|
-
|
1967
|
+
36
|
1787
1968
|
I
|
1788
1969
|
f1
|
1789
1970
|
I
|
1790
|
-
|
1971
|
+
38
|
1791
1972
|
I
|
1792
1973
|
ff
|
1793
1974
|
I
|
1794
|
-
|
1975
|
+
3c
|
1795
1976
|
I
|
1796
1977
|
10d
|
1797
1978
|
I
|
1798
|
-
|
1979
|
+
40
|
1799
1980
|
I
|
1800
1981
|
11b
|
1801
1982
|
I
|
@@ -1803,17 +1984,25 @@ I
|
|
1803
1984
|
I
|
1804
1985
|
129
|
1805
1986
|
I
|
1806
|
-
|
1987
|
+
4c
|
1807
1988
|
I
|
1808
1989
|
137
|
1809
1990
|
I
|
1810
|
-
|
1991
|
+
50
|
1811
1992
|
I
|
1812
1993
|
145
|
1813
1994
|
I
|
1814
|
-
|
1995
|
+
54
|
1815
1996
|
I
|
1816
1997
|
153
|
1998
|
+
I
|
1999
|
+
58
|
2000
|
+
I
|
2001
|
+
161
|
2002
|
+
I
|
2003
|
+
5c
|
2004
|
+
I
|
2005
|
+
16f
|
1817
2006
|
x
|
1818
2007
|
84
|
1819
2008
|
/Users/felipeelias/Applicake/doorkeeper/lib/doorkeeper/oauth/access_token_request.rb
|