Advertisement
Guest User

Untitled

a guest
Nov 8th, 2014
167
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Diff 8.32 KB | None | 0 0
  1. --- oauthlib-0.7.1-github/oauthlib/oauth2/rfc6749/grant_types/authorization_code.py 2014-10-27 09:56:50.000000000 -0700
  2. +++ oauthlib-0.7.1-pypi/oauthlib/oauth2/rfc6749/grant_types/authorization_code.py   2014-10-27 07:32:43.000000000 -0700
  3. @@ -5,7 +5,6 @@
  4.  """
  5.  from __future__ import unicode_literals, absolute_import
  6.  
  7. -import json
  8.  import logging
  9.  
  10.  from oauthlib import common
  11. @@ -13,7 +12,6 @@
  12.  
  13.  from .base import GrantTypeBase
  14.  from .. import errors
  15. -from ..request_validator import RequestValidator
  16.  
  17.  log = logging.getLogger(__name__)
  18.  
  19. @@ -94,9 +92,10 @@
  20.  
  21.      .. _`Authorization Code Grant`: http://tools.ietf.org/html/rfc6749#section-4.1
  22.      """
  23. -
  24. -    def __init__(self, request_validator=None):
  25. -        self.request_validator = request_validator or RequestValidator()
  26. +    grant_types = ['authorization_code']
  27. +    mandatory_parameters = ['grant_type', 'code']
  28. +    disallowed_duplicates = ['grant_type', 'code', 'client_id', 'redirect_uri', 'scope']
  29. +    refresh_token = True
  30.  
  31.      def create_authorization_code(self, request):
  32.          """Generates an authorization grant represented as a dictionary."""
  33. @@ -216,32 +215,6 @@
  34.              request.client_id, grant, request)
  35.          return {'Location': common.add_params_to_uri(request.redirect_uri, grant.items())}, None, 302
  36.  
  37. -    def create_token_response(self, request, token_handler):
  38. -        """Validate the authorization code.
  39. -
  40. -        The client MUST NOT use the authorization code more than once. If an
  41. -        authorization code is used more than once, the authorization server
  42. -        MUST deny the request and SHOULD revoke (when possible) all tokens
  43. -        previously issued based on that authorization code. The authorization
  44. -        code is bound to the client identifier and redirection URI.
  45. -        """
  46. -        headers = {
  47. -            'Content-Type': 'application/json',
  48. -            'Cache-Control': 'no-store',
  49. -            'Pragma': 'no-cache',
  50. -        }
  51. -        try:
  52. -            self.validate_token_request(request)
  53. -            log.debug('Token request validation ok for %r.', request)
  54. -        except errors.OAuth2Error as e:
  55. -            log.debug('Client error during validation of %r. %r.', request, e)
  56. -            return headers, e.json, e.status_code
  57. -
  58. -        token = token_handler.create_token(request, refresh_token=True)
  59. -        self.request_validator.invalidate_authorization_code(
  60. -            request.client_id, request.code, request)
  61. -        return headers, json.dumps(token), 200
  62. -
  63.      def validate_authorization_request(self, request):
  64.          """Check the authorization request for normal and fatal errors.
  65.  
  66. @@ -269,7 +242,8 @@
  67.          if not request.client_id:
  68.              raise errors.MissingClientIdError(request=request)
  69.  
  70. -        if not self.request_validator.validate_client_id(request.client_id, request):
  71. +        if not self.request_validator.validate_client_id(
  72. +                request.client_id, request):
  73.              raise errors.InvalidClientIdError(request=request)
  74.  
  75.          # OPTIONAL. As described in Section 3.1.2.
  76. @@ -305,14 +279,20 @@
  77.          # Note that the correct parameters to be added are automatically
  78.          # populated through the use of specific exceptions.
  79.          if request.response_type is None:
  80. -            raise errors.InvalidRequestError(description='Missing response_type parameter.', request=request)
  81. +            raise errors.InvalidRequestError(
  82. +                description='Missing response_type parameter.',
  83. +                request=request)
  84.  
  85. -        for param in ('client_id', 'response_type', 'redirect_uri', 'scope', 'state'):
  86. +        for param in ('client_id', 'response_type', 'redirect_uri', 'scope',
  87. +                      'state'):
  88.              if param in request.duplicate_params:
  89. -                raise errors.InvalidRequestError(description='Duplicate %s parameter.' % param, request=request)
  90. -
  91. -        if not self.request_validator.validate_response_type(request.client_id,
  92. -                                                             request.response_type, request.client, request):
  93. +                raise errors.InvalidRequestError(
  94. +                    description='Duplicate %s parameter.' % param,
  95. +                    request=request)
  96. +
  97. +        if not self.request_validator.validate_response_type(
  98. +                request.client_id, request.response_type, request.client,
  99. +                request):
  100.              log.debug('Client %s is not authorized to use response_type %s.',
  101.                        request.client_id, request.response_type)
  102.              raise errors.UnauthorizedClientError(request=request)
  103. @@ -334,29 +314,19 @@
  104.          }
  105.  
  106.      def validate_token_request(self, request):
  107. -        # REQUIRED. Value MUST be set to "authorization_code".
  108. -        if request.grant_type != 'authorization_code':
  109. -            raise errors.UnsupportedGrantTypeError(request=request)
  110. -
  111. -        if request.code is None:
  112. -            raise errors.InvalidRequestError(
  113. -                description='Missing code parameter.', request=request)
  114. -
  115. -        for param in ('client_id', 'grant_type', 'redirect_uri'):
  116. -            if param in request.duplicate_params:
  117. -                raise errors.InvalidRequestError(description='Duplicate %s parameter.' % param,
  118. -                                                 request=request)
  119. +        self.early_validate_token_request(request)
  120.  
  121.          if self.request_validator.client_authentication_required(request):
  122. -            # If the client type is confidential or the client was issued client
  123. -            # credentials (or assigned other authentication requirements), the
  124. -            # client MUST authenticate with the authorization server as described
  125. -            # in Section 3.2.1.
  126. +            # If the client type is confidential or the client was issued
  127. +            # client credentials (or assigned other authentication
  128. +            # requirements), the client MUST authenticate with the
  129. +            # authorization server as described in Section 3.2.1.
  130.              # http://tools.ietf.org/html/rfc6749#section-3.2.1
  131.              if not self.request_validator.authenticate_client(request):
  132.                  log.debug('Client authentication failed, %r.', request)
  133.                  raise errors.InvalidClientError(request=request)
  134. -        elif not self.request_validator.authenticate_client_id(request.client_id, request):
  135. +        elif not self.request_validator.authenticate_client_id(
  136. +                request.client_id, request):
  137.              # REQUIRED, if the client is not authenticating with the
  138.              # authorization server as described in Section 3.2.1.
  139.              # http://tools.ietf.org/html/rfc6749#section-3.2.1
  140. @@ -368,13 +338,12 @@
  141.                                        'request.client.client_id attribute '
  142.                                        'in authenticate_client.')
  143.  
  144. -        # Ensure client is authorized use of this grant type
  145.          self.validate_grant_type(request)
  146.  
  147.          # REQUIRED. The authorization code received from the
  148.          # authorization server.
  149. -        if not self.request_validator.validate_code(request.client_id,
  150. -                                                    request.code, request.client, request):
  151. +        if not self.request_validator.validate_code(
  152. +                request.client_id, request.code, request.client, request):
  153.              log.debug('Client, %r (%r), is not allowed access to scopes %r.',
  154.                        request.client_id, request.client, request.scopes)
  155.              raise errors.InvalidGrantError(request=request)
  156. @@ -386,8 +355,9 @@
  157.          # REQUIRED, if the "redirect_uri" parameter was included in the
  158.          # authorization request as described in Section 4.1.1, and their
  159.          # values MUST be identical.
  160. -        if not self.request_validator.confirm_redirect_uri(request.client_id, request.code,
  161. -                                                           request.redirect_uri, request.client):
  162. +        if not self.request_validator.confirm_redirect_uri(
  163. +                request.client_id, request.code, request.redirect_uri,
  164. +                request.client):
  165.              log.debug('Redirect_uri (%r) invalid for client %r (%r).',
  166.                        request.redirect_uri, request.client_id, request.client)
  167.              raise errors.AccessDeniedError(request=request)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement