为Django admin使用备用身份验证后端

2024-10-04 05:24:12 发布

您现在位置:Python中文网/ 问答频道 /正文

我在我的Django站点上使用CAS进行身份验证(通过Django-casng)。如果我通过CAS登录然后访问管理站点,它可以正常工作,但是如果我在未登录时访问管理站点,它会重定向到管理站点的登录表单,而不是CAS登录页面。如何使其重定向到CAS登录页?在


Tags: django身份验证表单站点页面重定向cascasng
2条回答

'django_cas_ng.middleware.CASMiddleware'添加到MIDDLEWARE_CLASSES将自动将用户重定向到CAS登录页面,而不是django管理员登录表单。在

示例:

MIDDLEWARE_CLASSES = (
    'django.middleware.common.CommonMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django_cas_ng.middleware.CASMiddleware',
    ...
)

我最后处理这个问题的方法是将AdminSite子类化并重写admin_viewlogin和{}。现在,admin_view不再将未经授权的用户重定向到管理界面的登录视图,admin_view现在将匿名用户重定向到settings.LOGIN_URL,并为非职员的经过身份验证的用户引发PermissionDeniedlogin和{}现在只是重定向到settings.LOGIN_URL和{}。在

我把代码放在on GitHub上,并以django-admin-external-auth的名义将其上传到PyPI,以防其他人需要解决这个问题。在

相关问题 更多 >