簡體   English   中英

如何在servlet(Portlet)中獲取Liferay登錄用戶詳細信息?

[英]How to get Liferay login user details in servlet(Portlet)?

我已將我的應用程序部署為Liferay上的一個porlet,現在我需要在執行業務邏輯時執行會話管理(在servlet中)。 假設我已將我的servlet部署在liferay上。

我正在使用liferay 6.2,Tomcat 7,我在執行業務邏輯之前向servlet提交一個表單,我需要檢查請求是否來自有效用戶或不是。 所以我需要獲取用戶身份驗證的登錄用戶詳細信息。 如何在servlet中獲取登錄用戶詳細信息? 有什么建議么?

您必須模擬Liferay所做的任何事情才能創建整個portlet上下文。 恕我直言,你給的場景不值得。 將servlet代碼添加到portlet中的問題是什么?

你無法真正將servlet部署到Liferay中 - 你的servlet可能與Liferay在同一個應用服務器上運行,但是當你查看HttpServletRequest的目標時,你會發現servlet請求是針對你的servlet的web應用程序的,故意與Liferay分開 - 一個完全不同且無關的應用程序。 當您查看portlet請求時,它將被定向到Liferay,然后在內部轉發到另一個Web應用程序中的portlet。 所有這些都已經很好地實施,恕我直言不值得追求。 應用程序服務器將拒絕向您提供來自其他Web應用程序的所有數據。

還有其他解決方案,但與將servlet代碼移動到portlet相比,它們似乎都非常復雜,我會等待更多的論據,為什么在提到它們之前你肯定需要繼續使用這個實現。

您可以使用以下代碼登錄用戶:

ThemeDisplay td  =(ThemeDisplay)actionRequest.getAttribute(WebKeys.THEME_DISPLAY);

User urs = td.getUser();

建議在liferay中,你應該編寫servlet的portlet。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM