2

ウォータールー大学の学生だけが使えるウェブサイトを作ろうとしています。認証には CAS を使用します。django_casパッケージの使用を開始しました。ほぼ完全に手順に従いました。ここに私がテストしたものがあります:

CAS ログイン ページにリダイレクト - 合格

CAS サーバーでユーザーを確認 - 合格

ウェブサイトにリダイレクト - 失敗

(更新:明確にするためにコードを追加する)解決策:

CAS_SERVER_URL が間違っていたようです。学校の CAS サーバーのプロトコルは http ではなく https です

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 を取得しました。

要求された URL /cas/login/http://uwnetwork.shaon.ca/accounts/login/?next=%2Fsample%2F がこのサーバーで見つかりませんでした。

リダイレクトに失敗する理由を知っている人はいますか?

4

1 に答える 1

0

誰かが有意義な回答をするのに十分な情報を提供していません。

次のことを試してください。

  1. django_cas のドキュメントに従って、CAS_SERVER_URL を適切に設定してください。
  2. 大学に相談して、CAS サーバーがアプリケーションへのリダイレクトを許可されていることを確認してください。認証が成功すると、ユーザーに関する一部の情報がアプリケーションに渡されるため、.uwaterloo.ca ドメイン内でホストされているサイトのみがユーザーを認証できるようにサーバーが構成されている可能性があります。
于 2011-03-20T23:00:27.920 に答える