Skip to content

Commit a73ed10

Browse files
authored
Sem-Ver: api-break Re-use verifiers in the various middlewares and add an optional verifier argument to the _process_asap_token method.
Signed-off-by: David Black <dblack@atlassian.com>
1 parent 3f8f9d7 commit a73ed10

3 files changed

Lines changed: 10 additions & 5 deletions

File tree

atlassian_jwt_auth/frameworks/common/asap.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
)
77

88

9-
def _process_asap_token(request, backend, settings):
9+
def _process_asap_token(request, backend, settings, verifier=None):
1010
""" Verifies an ASAP token, validates the claims, and returns an error
1111
response"""
1212
token = backend.get_asap_token(request)
@@ -17,7 +17,8 @@ def _process_asap_token(request, backend, settings):
1717
try:
1818
if token is None:
1919
raise NoTokenProvidedError
20-
verifier = backend.get_verifier(settings=settings)
20+
if verifier is None:
21+
verifier = backend.get_verifier(settings=settings)
2122
asap_claims = verifier.verify_jwt(
2223
token,
2324
settings.ASAP_VALID_AUDIENCE,

atlassian_jwt_auth/frameworks/django/middleware.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,11 @@ def asap_middleware(get_response):
66
"""Middleware to enable ASAP for all requests"""
77
backend = DjangoBackend()
88
settings = backend.settings
9+
_verifier = backend.get_verifier(settings=settings)
910

1011
def middleware(request):
11-
error_response = _process_asap_token(request, backend, settings)
12+
error_response = _process_asap_token(request, backend, settings,
13+
verifier=_verifier)
1214
if error_response is not None:
1315
return error_response
1416

@@ -24,10 +26,11 @@ class OldStyleASAPMiddleware(object):
2426
def __init__(self):
2527
self.backend = DjangoBackend()
2628
self.settings = self.backend.settings
29+
self._verifier = backend.get_verifier(settings=self.settings)
2730

2831
def process_request(self, request):
2932
error_response = _process_asap_token(
30-
request, self.backend, self.settings
33+
request, self.backend, self.settings, verifier=self._verifier
3134
)
3235
if error_response is not None:
3336
return error_response

atlassian_jwt_auth/frameworks/wsgi/middleware.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,13 @@ class ASAPMiddleware(object):
99
def __init__(self, handler, settings):
1010
self._next = handler
1111
self._backend = WSGIBackend(settings)
12+
self._verifier = self._backend.get_verifier()
1213

1314
def __call__(self, environ, start_response):
1415
settings = self._backend.settings
1516
request = Request(environ, start_response)
1617
error_response = _process_asap_token(
17-
request, self._backend, settings
18+
request, self._backend, settings, verifier=self._verifier
1819
)
1920
if error_response is not None:
2021
return error_response

0 commit comments

Comments
 (0)