Middleware#

This module contains middleware to ensure best practices of DRF and other endpoints..

class RequestCustomAttributesMiddleware(get_response)#

Adds various request related custom attributes.

Possible custom attributes include:
request_authenticated_user_set_in_middleware:

Example values: ‘process_request’, ‘process_view’, ‘process_response’, or ‘process_exception’.

Attribute won’t exist if user is not authenticated.

request_auth_type_guess:

Example values include: no-user, unauthenticated, jwt, bearer, other-token-type, jwt-cookie, or session-or-other

Note: These are just guesses because if a token was expired, for example, the user could have been authenticated by some other means.

request_client_name: The client name from edx-rest-api-client calls. request_referer: The referrer for the request. request_user_agent: The user agent string from the request header. request_user_id: The user id of the request user.

request_is_staff_or_superuser: staff or superuser depending on whether the

user in the request is a django staff or superuser.

This middleware is dependent on the RequestCacheMiddleware. You must include this middleware later. For example:

MIDDLEWARE = (
    'edx_django_utils.cache.middleware.RequestCacheMiddleware',
    'edx_rest_framework_extensions.middleware.RequestCustomAttributesMiddleware',
)

This middleware should also appear after any authentication middleware.

process_exception(request, exception)#

Django middleware handler to process an exception

process_request(request)#

Caches if authenticated user was found.

process_response(request, response)#

Add custom attributes for various details of the request.

process_view(request, view_func, view_args, view_kwargs)#

Caches if authenticated user was found.

class RequestMetricsMiddleware(*args, **kwargs)#

Deprecated class for handling middleware. Class has been renamed to RequestCustomAttributesMiddleware.