2012-10-12 79 views
1

我正在創建定製portlet。如何以編程方式從Liferay定製portlet登錄

我需要在自定義portlet中執行一些操作後,從門戶網站註銷用戶。我正在延長liferay的MVCPortlet

MyPortlet的其中一個操作方法中,我需要編寫代碼來註銷用戶,然後將其重定向到主頁。

更新:
我試過,我認爲註銷的用戶,但在註銷後不重定向到主頁如下:

actionResponse.sendRedirect(PortalUtil.getPortalURL(actionRequest) + "/c/portal/logout"); 

感謝所有

回答

0

您可以重定向到更精確地說:

actionResponse.sendRedirect(「/C /門戶/註銷/「);

+0

我嘗試過這種變化(請參閱我更新的問題),但在調用註銷操作後它不會重定向到主頁。 –

+0

然後,您必須爲您的門戶設置默認註銷頁面。要做到這一點,去控制 - > PanelPortal - >門戶設置,編輯,你會看到設置。 – Paul

1

嗯,這可能是一個非常晚的答覆,但它可能會幫助別人

首先,您必須驗證會話,並重新定向到註銷URL。否則,即使我們重定向到註銷網址,會話仍然存在,並且用戶被移至着陸頁。所以,這是應該做的

HttpServletRequest request = PortalUtil.getHttpServletRequest(actionRequest); 
request.getSession().invalidate(); 
actionResponse.sendRedirect(themeDisplay.getURLSignOut()); 

希望這會有所幫助。

0

面臨這樣的問題(LR7)後就要離開這個位置:

try { 
     AuthenticatedSessionManagerUtil.logout(request, response); 

     request.setAttribute(WebKeys.LOGOUT, true); 

    } 
0

所有你需要做的就是

執行操作:在操作使用本月底:

HttpSession session = PortalUtil.getHttpServletRequest(request).getSession(); 
session.invalidate(); 


try { 
    System.out.println(" redirecting to the required page"); 
        response.sendRedirect(themeDisplay.getPortalURL() + "/page-on-which-to-be-redirected"); 

    } catch (IOException e1) { 

      e1.printStackTrace(); 
     }