[英]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.