LogoutHandlerというのが見つかりました。
調べたつもりだったのですが不十分だったようです・・・
###ドキュメント
http://docs.spring.io/spring-security/site/docs/current/apidocs/org/springframework/security/web/authentication/logout/LogoutHandler.html
###参考
http://stackoverflow.com/questions/29583923/spring-security-java-config-custom-logout-handler-not-working
参考URLに書いてあるとおりですが、以下のような記述でログアウトした人のIDを出力できました。
試してないですがCustomLogoutHandlerのlogoutのタイミングにジョインポイントを指定すればなんとかなりそうです。
######CustomLogoutHandler.java
public class CustomLogoutHandler implements LogoutHandler {
@Override
public void logout(HttpServletRequest request, HttpServletResponse response, Authentication authentication) {
//ログ出力処理~~~~~~~
System.out.println("ログアウトした人:" + authentication.getName());
}
}
######WebSecurityConfig.java
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
//省略~~~
@Override
protected void configure(final HttpSecurity pHttp) throws Exception {
pHttp
//省略~~~
.and().logout()
.addLogoutHandler(customLogoutHandler())//LogoutHandler設定
.logoutRequestMatcher(new AntPathRequestMatcher("/logout")) //ログアウトURL
.logoutSuccessUrl("/logout_complete")//ログアウト成功時の遷移先
;
}
@Bean
public CustomLogoutHandler customLogoutHandler() {
return new CustomLogoutHandler();
}
//省略~~~
}