使用简单的 Java 代码获取当前用户 Liferay
Posted
技术标签:
【中文标题】使用简单的 Java 代码获取当前用户 Liferay【英文标题】:Get the current user Liferay using a simple Java code 【发布时间】:2012-05-13 23:03:12 【问题描述】:我正在使用 Liferay 6.0.6 和 JBoss 5.1 和 Struts2。
我的问题是,如何在 Liferay 中使用 Java 代码登录当前用户。
【问题讨论】:
我的意思是,解决方案应该是Java代码,我们必须通过电子邮件检索当前用户:) 【参考方案1】:在您的 doView/processAction 方法中执行以下操作
User user = (User) request.getAttribute(WebKeys.USER);
或使用 ThemeDisplay 对象。它包含其他信息,例如 companyId、groupId、...
ThemeDisplay td =(ThemeDisplay)request.getAttribute(WebKeys.THEME_DISPLAY);
User user = td.getUser();
类 ThemeDisplay、User nad WebKeys 是 portal-service.jar 的一部分。
如果您只需要一些 id 来识别当前用户,您也可以使用
String userId = request.getRemoteUser();
这个解决方案不是 Liferay 特定的,应该可以在 jsr-286 门户之间移植。
【讨论】:
你能告诉我更多关于实例“请求”的信息吗?如何初始化它? 它可以是 RenderRequest、ActionRequest、EventRequest 或 ResourceRequest。如果您不熟悉它们,那么您应该阅读一些 portlet 教程,例如 liferay.com/documentation/liferay-portal/6.0/development/-/ai/… 用户 currentUser = LiferayFacesContext.getInstance().getUser();【参考方案2】:Liferay 提供 Util 类
com.liferay.portal.util.PortalUtil
该类包含获取常用属性的所有实用方法。
尝试使用PortalUtil.getUser(PortletRequest portletRequest)
方法来避免创建新对象和引用。
【讨论】:
与 ThemeDisplay 有什么不同? @zhelon,什么都没有,你从请求中获取 themeDisplay,然后从中获取 getUser(),PortalUtil.getUser() 从请求中获取相同的内容,如果你看到 PortalImpl.getUser() 那么你会注意到这个 request.getAttribute(WebKeys.USER);【参考方案3】:这是另一种可能的方法:
private LiferayFacesContext liferayFacesContext = LiferayFacesContext.getInstance();
User currentUser=liferayFacesContext.getUser()
【讨论】:
以上是关于使用简单的 Java 代码获取当前用户 Liferay的主要内容,如果未能解决你的问题,请参考以下文章
java获取当前用户的IP地址代码!怎么样调用的?初学者!希望大家多多的帮帮忙!!