如何在Liferay中获取当前用户?

med*_*ed 14 java liferay-6

如何使用简单的Java代码将当前用户连接到Liferay门户?

我正在使用Liferay 6.0.6

Mar*_*ark 24

只是:

User currentUser = PortalUtil.getUser(request);
Run Code Online (Sandbox Code Playgroud)


Rav*_*pta 10

在doView/processAction方法中执行以下操作

User user = (User) request.getAttribute(WebKeys.USER);
Run Code Online (Sandbox Code Playgroud)

或使用ThemeDisplay对象.它包含另一个信息,如companyId,groupId,...

ThemeDisplay td  =(ThemeDisplay)request.getAttribute(WebKeys.THEME_DISPLAY);
User user = td.getUser();
Run Code Online (Sandbox Code Playgroud)

类ThemeDisplay,User和WebKeys是portal-service.jar的一部分.

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

String userId = request.getRemoteUser();
Run Code Online (Sandbox Code Playgroud)

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

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


小智 3

在Java代码中:

  • UserLocalServiceUtil.getXXX方法都有,你自己选择就可以了。

在 JSP 代码中:

  • themeDisplay.getUserId()会给你当前的用户 ID
  • themeDisplay.getUser()将为您提供当前用户的对象。