Skip to content

Commit 5ab385b

Browse files
authored
Fix default relay state bug (#253)
If not defined the relaystate was always defaulting to / despite settings.LOGIN_REDIRECT_URL being set.
1 parent 37a095f commit 5ab385b

File tree

1 file changed

+3
-2
lines changed

1 file changed

+3
-2
lines changed

djangosaml2/views.py

+3-2
Original file line numberDiff line numberDiff line change
@@ -430,9 +430,10 @@ def post_login_hook(self, request: HttpRequest, user: settings.AUTH_USER_MODEL,
430430
def build_relay_state(self) -> str:
431431
""" The relay state is a URL used to redirect the user to the view where they came from.
432432
"""
433+
login_redirect_url = get_custom_setting('LOGIN_REDIRECT_URL', '/')
433434
default_relay_state = get_custom_setting(
434-
'ACS_DEFAULT_REDIRECT_URL', settings.LOGIN_REDIRECT_URL)
435-
relay_state = self.request.POST.get('RelayState', '/')
435+
'ACS_DEFAULT_REDIRECT_URL', login_redirect_url)
436+
relay_state = self.request.POST.get('RelayState', default_relay_state)
436437
relay_state = self.customize_relay_state(relay_state)
437438
if not relay_state:
438439
logger.warning('The RelayState parameter exists but is empty')

0 commit comments

Comments
 (0)