そのため、これがバグなのかブラウザのキャッシュなのか、何かが足りないのかを判断しようとしていますが、ログアウトすると、以前にアクセスしたすべてのページにアクセスできます。残りのエンドポイントへのajax呼び出しもあり、それを呼び出すと、応答を出力して200okを取得します。
ここで、ログアウトをクリックすると、無効なセッションURLパラメータを使用してログインページに戻ります。そのため、セッションを削除しようとしているようです。さらに、ブラウザを完全に閉じると、タブだけでなく、以前にアクセスできたページにアクセスできなくなります。しかし、ブラウザを閉じないと、すでにアクセスしたページにアクセスできます。まだアクセスしていないページは、ログインページに転送されます。ブラウザのキャッシュの問題かどうか疑問に思いますが、ajaxリクエストの200okはそれを疑わせます。
Spring-Securityバージョン3.1.0
ログアウトの設定は次のとおりです。
<logout invalidate-session="true" logout-success-url="/login-page.html?logout=true"
logout-url="/j_spring_security_logout" />
<session-management invalid-session-url="/login-page.html?session=invalid">
<concurrency-control max-sessions="1" error-if-maximum-exceeded="true" />
</session-management>
web.xmlにこのリスナーを追加しました
<listener>
<listener-class>org.springframework.security.web.session.HttpSessionEventPublisher</listener-class>
</listener>
アップデート
それは確かにブラウザのキャッシュの問題だったので、それを修正するためにDispatcherServletxmlに追加しました
<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
<property name="cacheSeconds" value="0" />
</bean>
また、頭にMETAタグを追加しました
<meta http-equiv="Pragma" content="no-cache">
<meta http-equiv="Expires" content="-1">
これにより、すべてのページとRESTメソッドのキャッシュが無効になります。