Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Get the current user Liferay using a simple Java code

I'm working with : Liferay 6.0.6 with JBoss 5.1 and Struts2.

My question is, how to get the current user in Liferay once logged in, using a Java code.

like image 496
Sabrina Avatar asked May 04 '12 11:05

Sabrina


People also ask

How do I get current user in Liferay?

getUserId() will give you the current user id. themeDisplay. getUser() will give you the object of current User.


2 Answers

In your doView/processAction method do following

User user = (User) request.getAttribute(WebKeys.USER);

or use the ThemeDisplay object. It contains another information like companyId, groupId, ...

ThemeDisplay td  =(ThemeDisplay)request.getAttribute(WebKeys.THEME_DISPLAY);
User user = td.getUser();

Classes ThemeDisplay, User nad WebKeys are part of portal-service.jar.

If you need just some id to identify current user you can also use

String userId = request.getRemoteUser();

This solution is not Liferay specific and should be portable among jsr-286 portals.

like image 156
František Hartman Avatar answered Sep 22 '22 07:09

František Hartman


Liferay provides Util class

com.liferay.portal.util.PortalUtil

This class contains all utility methods to get the frequently used attributes.

Try using PortalUtil.getUser(PortletRequest portletRequest) method to avoid creating new objects and references.

like image 30
Felix Christy Avatar answered Sep 18 '22 07:09

Felix Christy