Skip to content

Commit 503202b

Browse files
committed
Compatibility with Django LoginRequiredMiddleware
Django 5.1 introduced the LoginRequiredMiddleware that automatically requires an authenticated user on all views except those marked as not requiring a login.
1 parent 4246f5b commit 503202b

File tree

2 files changed

+14
-0
lines changed

2 files changed

+14
-0
lines changed

azure_auth/decorators.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,22 @@
22
from urllib.parse import urlparse
33

44
from django.conf import settings
5+
from django.contrib.auth import decorators
56
from django.shortcuts import redirect
67
from django.urls import reverse
78

89
from .handlers import AuthHandler
910

1011

12+
def _dummy_login_not_required(view_func):
13+
return view_func
14+
15+
16+
login_not_required = getattr(
17+
decorators, "login_not_required", _dummy_login_not_required
18+
)
19+
20+
1121
def azure_auth_required(func):
1222
@functools.wraps(func)
1323
def _wrapper(request, *args, **kwargs):

azure_auth/views.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,13 @@
77

88
from azure_auth.utils import EntraStateSerializer
99

10+
from .decorators import login_not_required
1011
from .handlers import AuthHandler
1112

1213
serializer = EntraStateSerializer()
1314

1415

16+
@login_not_required
1517
def azure_auth_login(request: HttpRequest):
1618
return HttpResponseRedirect(
1719
AuthHandler(request).get_auth_uri(
@@ -20,6 +22,7 @@ def azure_auth_login(request: HttpRequest):
2022
)
2123

2224

25+
@login_not_required
2326
def azure_auth_logout(request: HttpRequest):
2427
# Auth handler has to be initialized before `logout()` to load the claims from the session
2528
auth_handler = AuthHandler(request)
@@ -28,6 +31,7 @@ def azure_auth_logout(request: HttpRequest):
2831
return HttpResponseRedirect(auth_handler.get_logout_uri())
2932

3033

34+
@login_not_required
3135
def azure_auth_callback(request: HttpRequest):
3236
token = AuthHandler(request).get_token_from_flow()
3337
user = authenticate(request, token=token)

0 commit comments

Comments
 (0)