Skip to content

Commit

Permalink
Add syntax check of get_default_redirect_uri
Browse files Browse the repository at this point in the history
Authorization Code was missing this check, whereas Implicit was checking it.
  • Loading branch information
JonathanHuot committed Jul 30, 2018
1 parent fbacd77 commit 3a769e2
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 0 deletions.
2 changes: 2 additions & 0 deletions oauthlib/oauth2/rfc6749/grant_types/authorization_code.py
Expand Up @@ -312,6 +312,8 @@ def validate_authorization_request(self, request):
log.debug('Using default redirect_uri %s.', request.redirect_uri)
if not request.redirect_uri:
raise errors.MissingRedirectURIError(request=request)
if not is_absolute_uri(request.redirect_uri):
raise errors.InvalidRedirectURIError(request=request)

# Then check for normal errors.

Expand Down
16 changes: 16 additions & 0 deletions tests/oauth2/rfc6749/endpoints/test_error_responses.py
Expand Up @@ -44,6 +44,22 @@ def test_invalid_redirect_uri(self):
self.assertRaises(errors.InvalidRedirectURIError,
self.mobile.create_authorization_response, uri.format('token'), scopes=['foo'])

def test_invalid_default_redirect_uri(self):
uri = 'https://example.com/authorize?response_type={0}&client_id=foo'
self.validator.get_default_redirect_uri.return_value = "wrong"

# Authorization code grant
self.assertRaises(errors.InvalidRedirectURIError,
self.web.validate_authorization_request, uri.format('code'))
self.assertRaises(errors.InvalidRedirectURIError,
self.web.create_authorization_response, uri.format('code'), scopes=['foo'])

# Implicit grant
self.assertRaises(errors.InvalidRedirectURIError,
self.mobile.validate_authorization_request, uri.format('token'))
self.assertRaises(errors.InvalidRedirectURIError,
self.mobile.create_authorization_response, uri.format('token'), scopes=['foo'])

def test_missing_redirect_uri(self):
uri = 'https://example.com/authorize?response_type={0}&client_id=foo'

Expand Down

0 comments on commit 3a769e2

Please sign in to comment.