diff options
author | Brendan McCollam <bmccollam@uchicago.edu> | 2016-11-18 15:39:04 +0000 |
---|---|---|
committer | Brendan McCollam <bmccollam@uchicago.edu> | 2016-12-22 15:00:32 +0000 |
commit | a43ed5d5b0a2ae1be67935a701b48ba83b4d9893 (patch) | |
tree | be8ba77718ad01e7234e4d71d722f499d6a06010 /oauthlib/oauth2/rfc6749/grant_types/authorization_code.py | |
parent | f0bbc526065ff88eaa431163d8d7c1f72694221b (diff) | |
download | oauthlib-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.py | 43 |
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) - |