Skip to content

Commit

Permalink
Update cookies.get_decoded_jwt logic to also query jwt cookie from re…
Browse files Browse the repository at this point in the history
…quest.auth
  • Loading branch information
saleem-latif committed May 8, 2019
1 parent 2f4c168 commit 1776f7c
Show file tree
Hide file tree
Showing 4 changed files with 15 additions and 3 deletions.
1 change: 1 addition & 0 deletions AUTHORS
Original file line number Diff line number Diff line change
Expand Up @@ -2,3 +2,4 @@ Clinton Blackburn <cblackburn@edx.org>
Bill DeRusha <bill@edx.org>
Jeremy Bowman <jbowman@edx.org>
Robert Raposa <rraposa@edx.org>
Saleem Latif <saleem_ee@hotmail.com>
2 changes: 1 addition & 1 deletion edx_rest_framework_extensions/__init__.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
""" edx Django REST Framework extensions. """

__version__ = '2.2.0' # pragma: no cover
__version__ = '2.2.1' # pragma: no cover
2 changes: 1 addition & 1 deletion edx_rest_framework_extensions/auth/jwt/cookies.py
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ def get_decoded_jwt(request):
Returns a decoded jwt dict if it can be found.
Returns None if the jwt is not found.
"""
jwt_cookie = request.COOKIES.get(jwt_cookie_name(), None)
jwt_cookie = request.COOKIES.get(jwt_cookie_name(), None) or getattr(request, 'auth', None)

if not jwt_cookie:
return None
Expand Down
13 changes: 12 additions & 1 deletion edx_rest_framework_extensions/auth/jwt/tests/test_cookies.py
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,17 @@ def test_get_decoded_jwt_from_existing_cookie(self):
self.assertEquals(expected_decoded_jwt, decoded_jwt)

def test_get_decoded_jwt_when_no_cookie(self):
mock_request = mock.Mock(COOKIES={})
mock_request = mock.Mock(COOKIES={}, auth=None)

self.assertIsNone(cookies.get_decoded_jwt(mock_request))

def test_get_decoded_jwt_from_auth(self):
user = UserFactory()
payload = generate_latest_version_payload(user)
jwt = generate_jwt_token(payload)
expected_decoded_jwt = jwt_decode_handler(jwt)

mock_request_with_cookie = mock.Mock(COOKIES={}, auth=jwt)

decoded_jwt = cookies.get_decoded_jwt(mock_request_with_cookie)
self.assertEquals(expected_decoded_jwt, decoded_jwt)

0 comments on commit 1776f7c

Please sign in to comment.