使用简单的Java代码获取当前用户Liferay

时间:2012-05-04 11:43:44

标签: authentication jboss struts2 liferay portal

我正在使用: Liferay 6.0.6 JBoss 5.1 Struts2

我的问题是,如何使用 Java 代码登录后,使用 Liferay 获取当前用户。

3 个答案:

答案 0 :(得分:27)

在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,用户nad WebKeys是portal-service.jar的一部分。

如果您只需要一些ID来识别当前用户,您也可以使用

String userId = request.getRemoteUser();

此解决方案不是Liferay特定的,应该可以在jsr-286门户中移植。

答案 1 :(得分:6)

Liferay提供Util类

  

com.liferay.portal.util.PortalUtil

此类包含获取常用属性的所有实用方法。

尝试使用PortalUtil.getUser(PortletRequest portletRequest)方法来避免创建新对象和引用。

答案 2 :(得分:6)

这是另一种可能的方法:

private LiferayFacesContext liferayFacesContext = LiferayFacesContext.getInstance();
User currentUser=liferayFacesContext.getUser()