Spring 注销侦听器获取用户详细信息
我有一个LogoutListener,它实现了HttpSessionListener,在sessionDestroyed方法中,我希望清除登录的用户访问上下文。在此方法中,我无法获取登录用户的详细信息以删除此项。任何关于如何得到这个的帮助都将是非常棒的。谢谢Spring 注销侦听器获取用户详细信息,spring,http,Spring,Http,我有一个LogoutListener,它实现了HttpSessionListener,在sessionDestroyed方法中,我希望清除登录的用户访问上下文。在此方法中,我无法获取登录用户的详细信息以删除此项。任何关于如何得到这个的帮助都将是非常棒的。谢谢 public class LogoutListener implements HttpSessionListener { . . . public void sessionDestroyed(HttpSessionEvent event)
public class LogoutListener implements HttpSessionListener {
.
.
.
public void sessionDestroyed(HttpSessionEvent event) {
我尝试使用以下方法获取身份验证,但它返回null:
Authentication auth = SecurityContextHolder.getContext().getAuthentication();
可能的副本最好使用
org.springframework.security.web.authentication.logout.SecurityContextLogoutHandler
作为注入org.springframework.security.web.authentication.logout.LogoutFilter
(和org.springframework.security.web.session.ConcurrentSessionFilter
,如果使用)。您应该实现一个自定义的LogoutHandler
来进行清理,并将其注册到LogoutFilter
。为了处理sessionDestroyed事件,您还可以实现ApplicationListener
,然后检查HttpSessionDestroyeEvent
,但是SecurityContext
将不可用我也是。