@@ -30,21 +30,39 @@ def _get_escaped_full_path(self, request):
3030
3131 return urlunparse (parsed )
3232
33- def _extract_params (self , request ):
33+ def _extract_headers (self , request ):
3434 """
35- Extract parameters from the Django request object. Such parameters will then be passed to
36- OAuthLib to build its own Request object
35+ Extracts headers from the Django request object
36+ :param request: The current django.http.HttpRequest object
37+ :return: a dictionary with OAuthLib needed headers
3738 """
38- uri = self ._get_escaped_full_path (request )
39- http_method = request .method
4039 headers = request .META .copy ()
4140 if 'wsgi.input' in headers :
4241 del headers ['wsgi.input' ]
4342 if 'wsgi.errors' in headers :
4443 del headers ['wsgi.errors' ]
4544 if 'HTTP_AUTHORIZATION' in headers :
4645 headers ['Authorization' ] = headers ['HTTP_AUTHORIZATION' ]
47- body = urlencode (request .POST .items ())
46+
47+ return headers
48+
49+ def _extract_body (self , request ):
50+ """
51+ Extracts the POST body from the Django request object
52+ :param request: The current django.http.HttpRequest object
53+ :return: provided POST parameters
54+ """
55+ return request .POST .items ()
56+
57+ def _extract_params (self , request ):
58+ """
59+ Extract parameters from the Django request object. Such parameters will then be passed to
60+ OAuthLib to build its own Request object. The body should be encoded using OAuthLib urlencoded
61+ """
62+ uri = self ._get_escaped_full_path (request )
63+ http_method = request .method
64+ headers = self ._extract_headers (request )
65+ body = urlencode (self ._extract_body (request ))
4866 return uri , http_method , body , headers
4967
5068 def validate_authorization_request (self , request ):
0 commit comments