Skip to content

Commit

Permalink
OpenConceptLab/ocl_issues#1338 | middleware to manage token from sess…
Browse files Browse the repository at this point in the history
…ion or from headers
  • Loading branch information
snyaggarwal committed Aug 5, 2022
1 parent a33e292 commit 2c1d27a
Showing 1 changed file with 16 additions and 0 deletions.
16 changes: 16 additions & 0 deletions core/middlewares/middlewares.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
from request_logging.middleware import LoggingMiddleware
from core.common.constants import VERSION_HEADER, REQUEST_USER_HEADER, RESPONSE_TIME_HEADER, REQUEST_URL_HEADER, \
REQUEST_METHOD_HEADER
from core.common.services import AuthService
from core.common.utils import set_current_user, set_request_url

request_logger = logging.getLogger('request_logger')
Expand Down Expand Up @@ -58,3 +59,18 @@ def __call__(self, request):
set_request_url(lambda self: request.build_absolute_uri())
response = self.get_response(request)
return response


class TokenAuthMiddleWare(BaseMiddleware):
def __call__(self, request):
token = request.session.get("oidc_access_token")
token_type = AuthService.get().token_type # Bearer or Token
authorization_header = request.META.get('HTTP_AUTHORIZATION')
if authorization_header:
if token_type not in authorization_header:
request.META['HTTP_AUTHORIZATION'] = authorization_header.replace(
'Token', token_type).replace('Bearer', token_type)
elif token:
request.META['HTTP_AUTHORIZATION'] = f'{token_type} {token}'
response = self.get_response(request)
return response

0 comments on commit 2c1d27a

Please sign in to comment.