2014-11-13 51 views
0

在Spring MVC中,如果用戶長時間未處於活動狀態,則默認情況下會註銷,因爲會話超時。Spring:在默認註銷事件上觸發一些方法

如果用戶登錄並且瀏覽器關閉,那麼他也是註銷。

我已經實施SimpleUrlLogoutSuccessHandler來捕獲註銷成功。但只有當用戶手動點擊註銷鏈接時纔會觸發。

默認情況下(例如,在窗口關閉時),如何在登錄會話過期或用戶註銷時觸發某種方法?

回答

1

您可以在會話中使用HttpSessionListener過期。

public class MySessionListener implements HttpSessionListener { 
    public void sessionCreated(HttpSessionEvent se) { } 
    public void sessionDestroyed(HttpSessionEvent se) { 
     HttpSession session = se.getSession(); 
     SecurityContext securityContext = (SecurityContext)session.getAttribute(HttpSessionSecurityContextRepository.SPRING_SECURITY_CONTEXT_KEY); 
     // check for null, retrieve Authentication etc 
    } 
} 

不要忘記在啓動時註冊監聽器。

很難趕上窗口關閉,但會話將及時到期。

+0

它會被註銷嗎? – manish

+0

@Manish可能取決於配置。 – holmis83

+0

你說什麼樣的配置。 – manish