2016-03-23 112 views
0

看起來Liferay的自動登錄掛鉤不會註銷當前用戶。所以,我想用下面的方法調用去做編程:Liferay - 自動登錄掛鉤/ portlet不會註銷當前用戶

request.getSession().invalidate(); 

,但沒有success.Does人曾與自動登錄鉤同樣的問題?

+0

您可以重定向到/ C /門/註銷 –

+0

你在哪裏打電話。'request.getSession()無效();'?如果您從其中一個定製portlet調用它,則只會使Web應用程序的會話無效,而不會使Liferay會話失效。 –

回答

0

主要的問題是,如果一個用戶登錄,一個自動登錄過濾器沒有執行,所以你不能做任何註銷操作。

對於我的解決方案,我創建了一個servlet過濾器,該過濾器檢查一些paramteres的autologin並執行註銷過程。爲了創建一個過濾器1按照本指南:http://www.liferaysavvy.com/2016/02/liferay-servlet-filter-hooks.html

我在的doFilter方法註銷代碼(Servlet過濾器):

final HttpServletRequest httpServletRequest = (HttpServletRequest) request; 
final HttpSession session = request.getSession(false); 

if (session != null) 
{ 
    session.invalidate(); 
} 

filterChain.doFilter(request, response);