diff --git a/awx/api/generics.py b/awx/api/generics.py index 4efc54b9a1..03289db5a5 100644 --- a/awx/api/generics.py +++ b/awx/api/generics.py @@ -131,8 +131,14 @@ class LoggedLoginView(auth_views.LoginView): class LoggedLogoutView(auth_views.LogoutView): + # Override http_method_names to allow GET requests (Django 5.2+ defaults to POST only) + http_method_names = ["get", "post", "options"] success_url_allowed_hosts = set(settings.LOGOUT_ALLOWED_HOSTS.split(",")) if settings.LOGOUT_ALLOWED_HOSTS else set() + def get(self, request, *args, **kwargs): + """Handle GET requests for logout (for backward compatibility).""" + return self.post(request, *args, **kwargs) + def dispatch(self, request, *args, **kwargs): if is_proxied_request(): # 1) We intentionally don't obey ?next= here, just always redirect to platform login