CAS 3.5 サーバーと 2 つの Java クライアント (app1 と app2 と呼びましょう) があり、シングル サインアウトが機能しません。app1 と app2 は JBoss AS7 の異なるインスタンスにデプロイされます。
テスト ケース シナリオは次のとおりです。
1 - ブラウザー タブで、app1 に正常にログインします。
2 - 別のタブで、app2 にアクセスすると、ユーザーはすでにログインしています (シングル サインオンが機能します)。
3 - app1 の正常なログアウト。
4 - ただし、ユーザーはページを更新した後も app2 にログインし続けます。JSESSIONID Cookie はまだ存在します。
app1 からログアウトすると (ステップ 3)、これが app2 のコンソールに出力されます (ログ レベル: デバッグ):
08:15:42,806 DEBUG [org.jasig.cas.client.authentication.Saml11AuthenticationFilter] (http--0.0.0.0-8080-3) no ticket and no assertion found
08:15:42,807 DEBUG [org.jasig.cas.client.authentication.Saml11AuthenticationFilter] (http--0.0.0.0-8080-3) Constructed service url: http://myip:8080/app2
08:15:42,807 DEBUG [org.jasig.cas.client.authentication.Saml11AuthenticationFilter] (http--0.0.0.0-8080-3) redirecting to "https://mycasip:8443/cas/login?TARGET=http%3A%2F%2Fmyip%3A8080%2Fapp2"
記録として、cas サーバーと app2 の両方の URL は正常に構成されているように見えますが、実際のリダイレクトは行われません。cas サーバーのコンソールに何も表示されません (再びログ レベル: デバッグ)。
これは私の web.xml からの抜粋です (SAML を使用して、ユーザー名のほかに LDAP 属性を送信します)。
<filter>
<filter-name>CAS Single Sign Out Filter</filter-name>
<filter-class>org.jasig.cas.client.session.SingleSignOutFilter</filter-class>
<init-param>
<param-name>artifactParameterName</param-name>
<param-value>SAMLart</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CAS Single Sign Out Filter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<listener>
<listener-class>org.jasig.cas.client.session.SingleSignOutHttpSessionListener</listener-class>
</listener>
SingleSignOutFilter の前にフィルター定義はなく、アプリの表示名とウェルカム ファイル リストのみがあります。
このような同様の質問を読みました(注:私はSpringもjspも使用せず、ユーザーは新しいタブでapp2を開いた後もログインしています)が、解決策がうまくいかなかったか、まったく与えられませんでした。