@@ -3,33 +3,25 @@ module OAuth2
3
3
module Server
4
4
module Abstract
5
5
class Request < Rack ::Request
6
- attr_accessor :client_id , :scope
6
+ include RequiredParams
7
+ attr_required :client_id
8
+ attr_accessor :scope
7
9
8
10
def initialize ( env )
9
11
super
10
- missing_params = verify_required_params
11
12
@client_id ||= params [ 'client_id' ]
12
13
@scope = Array ( params [ 'scope' ] . to_s . split ( ' ' ) )
13
- missing_params << :client_id if @client_id . blank?
14
- unless missing_params . blank?
15
- invalid_request! ( "'#{ missing_params . join ( '\', \'' ) } ' required." , :state => @state , :redirect_uri => @redirect_uri )
16
- end
17
- if params [ 'client_id' ] . present? && @client_id != params [ 'client_id' ]
18
- invalid_client! ( "Multiple client credentials are provided." )
19
- end
20
14
end
21
15
22
- def required_params
23
- [ ]
24
- end
25
-
26
- def verify_required_params
27
- missing_params = [ ]
28
- required_params . each do |key |
29
- missing_params << key unless params [ key . to_s ]
16
+ def verify_required_params_with_error_handling!
17
+ if params [ 'client_id' ] . present? && @client_id != params [ 'client_id' ]
18
+ invalid_client! ( "Multiple client credentials are provided." )
30
19
end
31
- missing_params
20
+ verify_required_params_without_error_handling!
21
+ rescue ParameterMissing => e
22
+ invalid_request! ( e . message , :state => @state , :redirect_uri => @redirect_uri )
32
23
end
24
+ alias_method_chain :verify_required_params! , :error_handling
33
25
34
26
end
35
27
end
0 commit comments