8

HelloWorld サーブレットを作成し、それに CAS を実装しました。問題なくログインできており、CAS はブラウザ、CASGT、および /cas 用に 2 つの JSESSIONID 1 と /helloWorld 用に 2 つの Cookie を設定しています。

問題は、その後https://blah:8443/cas/logoutにアクセスすることです。ログアウトに成功した画面が表示されますが、Cookie はブラウザに残っているため、ログアウトされず、再度ログインできます/helloWorld ログイン画面を表示せずに。

ログアウト時に CAS が作成した Cookie を削除するには、どうすればよいですか?

前もって感謝します

4

2 に答える 2

7

CASGT Cookie は CAS によって設定され、設定を解除する必要があります。CAS ログアウト手順は次のように機能します。

  1. 実際に CAS ログアウト ページに移動します。ページは、ログアウトするアプリケーションを認識している必要があります。1 つの方法は、アプリケーションから CAS ログアウト ページにリダイレクトし、リダイレクト バック URL をパラメーターとして指定することです。

  2. Cookie が消去され、POST 要求を介してアプリケーションにリダイレクトされます。

  3. SingleSignOutFilter特別なパラメータ「logoutRequest」をキャッチし、最初から保持していたチケット/セッション マッピングを実際に破棄し、現在のセッションも無効にします。

CAS をデバッグするには、TRACEレベル ロギングを有効にします。このようにして、適切なリクエストが受信されたかどうか、またはセッションが無効になったかどうかがわかります。

org.jasig.cas.client.sessionまた、非常に単純なパッケージのコードを確認することをお勧めします。

于 2012-02-24T19:21:27.050 に答える
4

こちら にある CAS シングル サインアウトに関するドキュメントを確認してください。それは言います:

シングルサインアウトが機能する場所:

セッション管理がサーバー側で維持されるクライアント/言語。その後、CAS クライアントはセッション情報にアクセスしてセッションを終了できます。

シングル サインアウトが機能しない場合:

セッション管理のみが Cookie で構成されるクライアント/言語。CAS はブラウザの Cookie にアクセスできないため、セッションを終了できません。(ただし、ブラウザ ウィンドウを閉じると、それが行われます)

そして、それはほとんどあなたの場合だと思います。Cookie ベースの SSout を実行することはできませんが、Spring のようなフレームワークを使用できる場合 (私たちのプロジェクトで行っているように)、SSout は簡単に構成でき、非常に便利です。

于 2012-03-16T13:10:28.883 に答える