繁体   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