質問: (UserDetails) securityContext.getAuthentication().getPrincipal(); // ... } } } ``` WebSecurityConfigurerAdapterを継承したクラスに以下の記述を追加 ``` @Bean public DefaultAuthenticationEventPublisher defaultAuthenticationEventPublisher() { return new DefaultAuthenticationEventPublisher(); } ``` この記述をすることで、セッションタイムアウト時にLogoutListenerクラスのonApplicationEventが呼ばれました。 セッションタイムアウトが起きたタイミングで正確に呼ばれるわけではありませんが、引数のeventにセッションタイムアウトがおきた際のタイムスタンプが記録されていたのでこれでタイムアウトの時間を判断できました。
回答: maisumakunさんの回答と同じですが、サーブレットの sessionDestroyedイベントを拾ってログに記録する方法が考えられます。 ちょっと検索したらTomcat環境でのWeb.xmlの記述方法と、イベントハンドラーのコードサンプルがありました。 Hooking Up HTTPSessionListener with Tomcat ご参考になれば。