2024-10-04 05:24:12 发布
网友
我在我的Django站点上使用CAS进行身份验证(通过Django-casng)。如果我通过CAS登录然后访问管理站点,它可以正常工作,但是如果我在未登录时访问管理站点,它会重定向到管理站点的登录表单,而不是CAS登录页面。如何使其重定向到CAS登录页?在
将'django_cas_ng.middleware.CASMiddleware'添加到MIDDLEWARE_CLASSES将自动将用户重定向到CAS登录页面,而不是django管理员登录表单。在
'django_cas_ng.middleware.CASMiddleware'
MIDDLEWARE_CLASSES
示例:
MIDDLEWARE_CLASSES = ( 'django.middleware.common.CommonMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django_cas_ng.middleware.CASMiddleware', ... )
我最后处理这个问题的方法是将AdminSite子类化并重写admin_view、login和{}。现在,admin_view不再将未经授权的用户重定向到管理界面的登录视图,admin_view现在将匿名用户重定向到settings.LOGIN_URL,并为非职员的经过身份验证的用户引发PermissionDenied。login和{}现在只是重定向到settings.LOGIN_URL和{}。在
AdminSite
admin_view
login
settings.LOGIN_URL
PermissionDenied
我把代码放在on GitHub上,并以django-admin-external-auth的名义将其上传到PyPI,以防其他人需要解决这个问题。在
django-admin-external-auth
将
'django_cas_ng.middleware.CASMiddleware'
添加到MIDDLEWARE_CLASSES
将自动将用户重定向到CAS登录页面,而不是django管理员登录表单。在示例:
我最后处理这个问题的方法是将}。现在,}现在只是重定向到}。在
AdminSite
子类化并重写admin_view
、login
和{admin_view
不再将未经授权的用户重定向到管理界面的登录视图,admin_view
现在将匿名用户重定向到settings.LOGIN_URL
,并为非职员的经过身份验证的用户引发PermissionDenied
。login
和{settings.LOGIN_URL
和{我把代码放在on GitHub上,并以
django-admin-external-auth
的名义将其上传到PyPI,以防其他人需要解决这个问题。在相关问题 更多 >
编程相关推荐