summaryrefslogtreecommitdiff
path: root/oauthlib/oauth2/rfc6749/grant_types/authorization_code.py
diff options
context:
space:
mode:
authorBrendan McCollam <bmccollam@uchicago.edu>2016-11-18 15:39:04 +0000
committerBrendan McCollam <bmccollam@uchicago.edu>2016-12-22 15:00:32 +0000
commita43ed5d5b0a2ae1be67935a701b48ba83b4d9893 (patch)
treebe8ba77718ad01e7234e4d71d722f499d6a06010 /oauthlib/oauth2/rfc6749/grant_types/authorization_code.py
parentf0bbc526065ff88eaa431163d8d7c1f72694221b (diff)
downloadoauthlib-a43ed5d5b0a2ae1be67935a701b48ba83b4d9893.tar.gz
Move custom validator registration onto GrantTypeBase
Diffstat (limited to 'oauthlib/oauth2/rfc6749/grant_types/authorization_code.py')
-rw-r--r--oauthlib/oauth2/rfc6749/grant_types/authorization_code.py43
1 files changed, 12 insertions, 31 deletions
diff --git a/oauthlib/oauth2/rfc6749/grant_types/authorization_code.py b/oauthlib/oauth2/rfc6749/grant_types/authorization_code.py
index 09756a1..1ac40f3 100644
--- a/oauthlib/oauth2/rfc6749/grant_types/authorization_code.py
+++ b/oauthlib/oauth2/rfc6749/grant_types/authorization_code.py
@@ -13,7 +13,6 @@ from oauthlib.uri_validate import is_absolute_uri
from .base import GrantTypeBase
from .. import errors
-from ..request_validator import RequestValidator
log = logging.getLogger(__name__)
@@ -96,31 +95,7 @@ class AuthorizationCodeGrant(GrantTypeBase):
"""
default_response_mode = 'query'
-
- def __init__(self, request_validator=None, refresh_token=True):
- self.request_validator = request_validator or RequestValidator()
- self.refresh_token = refresh_token
-
- self._authorization_validators = []
- self._token_validators = []
- self._code_modifiers = []
- self._token_modifiers = []
- self.response_types = ['code']
-
- def register_response_type(self, response_type):
- self.response_types.append(response_type)
-
- def register_authorization_validator(self, validator):
- self._authorization_validators.append(validator)
-
- def register_token_validator(self, validator):
- self._token_validators.append(validator)
-
- def register_code_modifier(self, modifier):
- self._code_modifiers.append(modifier)
-
- def register_token_modifier(self, modifier):
- self._token_modifiers.append(modifier)
+ response_types = ['code']
def create_authorization_code(self, request):
"""Generates an authorization grant represented as a dictionary."""
@@ -347,6 +322,10 @@ class AuthorizationCodeGrant(GrantTypeBase):
# Note that the correct parameters to be added are automatically
# populated through the use of specific exceptions.
+ request_info = {}
+ for validator in self._auth_validators_run_before_standard_ones:
+ request_info.update(validator(request))
+
# REQUIRED.
if request.response_type is None:
raise errors.MissingResponseTypeError(request=request)
@@ -367,15 +346,15 @@ class AuthorizationCodeGrant(GrantTypeBase):
# http://tools.ietf.org/html/rfc6749#section-3.3
self.validate_scopes(request)
- request_info = {
+ request_info.update({
'client_id': request.client_id,
'redirect_uri': request.redirect_uri,
'response_type': request.response_type,
'state': request.state,
'request': request
- }
+ })
- for validator in self._authorization_validators:
+ for validator in self._auth_validators_run_after_standard_ones:
request_info.update(validator(request))
return request.scopes, request_info
@@ -385,6 +364,9 @@ class AuthorizationCodeGrant(GrantTypeBase):
if request.grant_type not in ('authorization_code', 'openid'):
raise errors.UnsupportedGrantTypeError(request=request)
+ for validator in self._token_validators_run_before_standard_ones:
+ validator(request)
+
if request.code is None:
raise errors.InvalidRequestError(
description='Missing code parameter.', request=request)
@@ -441,6 +423,5 @@ class AuthorizationCodeGrant(GrantTypeBase):
request.redirect_uri, request.client_id, request.client)
raise errors.AccessDeniedError(request=request)
- for validator in self._token_validators:
+ for validator in self._token_validators_run_after_standard_ones:
validator(request)
-