为什么我校的CAS服务器在验证后没有重定向到我的网站?

时间:2011-03-20 22:33:36

标签: python django authentication cas

我正在努力创建一个只有滑铁卢大学学生可以使用的网站。它使用CAS进行身份验证。我开始使用django_cas包。紧随其后的步骤。以下是我测试的内容:

重定向到CAS登录页面 - 传递

验证CAS服务器上的用户 - 传递

重定向回网站 - 失败

(更新:添加代码以澄清) 解决方案:

似乎我的CAS_SERVER_URL错了。 我的学校的CAS服务器协议是https而不是http

cas_django需要很少的配置:

## in settings.py
   CAS_SERVER_URL = 'http://cas-dev.uwaterloo.ca/cas/'
   LOGIN_URL = '/accounts/login/'
   MIDDLEWARE_CLASSES = (
       'django.middleware.common.CommonMiddleware',
       'django.contrib.sessions.middleware.SessionMiddleware',
       'django.middleware.csrf.CsrfViewMiddleware',
       'django.contrib.auth.middleware.AuthenticationMiddleware',
       'django.contrib.messages.middleware.MessageMiddleware',
       'django_cas.middleware.CASMiddleware',
   )

   AUTHENTICATION_BACKENDS = (
       'django.contrib.auth.backends.ModelBackend',
       'django_cas.backends.CASBackend',
   )

## in urls.py
   (r'^accounts/login/$', 'django_cas.views.login'),
   (r'^accounts/logout/$', 'django_cas.views.logout'),

## in views.py
@login_required
def sample(request):
    return render_to_response('sample.html')

我得到了一个404:

在此服务器上找不到请求的网址/cas/login/http://uwnetwork.shaon.ca/accounts/login/?next=%2Fsample%2F。

有人知道它为什么不能重定向?

1 个答案:

答案 0 :(得分:0)

你并没有真正为某人提供足够的信息给你一个有意义的答案。

尝试以下方法:

  1. 确保根据django_cas文档正确设置了CAS_SERVER_URL。
  2. 与您的大学交谈以确保CAS服务器可以重定向到您的应用程序。由于成功进行身份验证后会将有关用户的某些信息传递给应用程序,因此服务器可能配置为仅允许托管在.uwaterloo.ca域内的站点对用户进行身份验证。