ユーザーがログアウトするときに、Cookie JSESSIONID を削除する必要があります。そのために、次の構成をセキュリティ構成に追加しました。
<http>
<form-login login-page="/login*" authentication-failure-url="/login?try_again" />
<http-basic />
<logout logout-url="/logout" delete-cookies="JSESSIONID" />
<session-management invalid-session-url="/timeout" />
<intercept-url pattern="/login*" access="IS_AUTHENTICATED_ANONYMOUSLY" />
...
</http>
ただし、Cookie は削除されるのではなく、複製されるだけです。
そのため、ブラウザを「/timeout」URL にリダイレクトし続けます。
Chrome Web ブラウザーの開発者ツールを使用して何が起こっているのかを追跡しようとしたところ、この Cookie が次の応答ヘッダーで設定されていることがわかりました。
Set-Cookie:JSESSIONID=CFF85EA743724F23FDA0317A75CFAD44; Path=/website/; HttpOnly
そして、この応答ヘッダーで削除します:
Set-Cookie:JSESSIONID=""; Expires=Thu, 01-Jan-1970 00:00:10 GMT; Path=/website
よくわかりませんが、理由はこれらのヘッダーの「パス」フィールドにあるようです。最初のヘッダーでは「/website/」を指し、2 番目のヘッダーでは「/website」を指しています。
記載されているトラブルの理由でしょうか?それが理由ではない場合 (または唯一の理由ではない場合)、他の理由は何ですか? この問題を解決するにはどうすればよいですか?