1
我有一個Spring應用程序,我有一個擴展HttpSessionEventPublisher的類。春季會話銷燬事件區分會話超時和註銷
我是跟蹤會話銷燬事件。
但是現在我想區分由於會話超時或由於用戶顯式註銷導致會話被破壞。
謝謝。
我有一個Spring應用程序,我有一個擴展HttpSessionEventPublisher的類。春季會話銷燬事件區分會話超時和註銷
我是跟蹤會話銷燬事件。
但是現在我想區分由於會話超時或由於用戶顯式註銷導致會話被破壞。
謝謝。
縱觀HttpSessionEventPublisher API,看起來您可以使用sessionDestroyed()
方法中作爲參數傳遞的HttpSessionDestroyedEvent
。
你可以做一些像的如下:
javax.servlet.http.HttpSession session = event.getSession();
long lastAction = session.getLastAccessedTime();
long now = System.currentTimeMillis();
int timeout= getMaxInactiveInterval();
if ((now-lastAction) > timeout)
//the session has timed out
SecurityContext context = getSecurityContext();
Authentication authentication = context.getAuthentication();
if (!authentication.isAuthenticated())
//the user has logged out