Get the current user Liferay using a simple Java code

三世轮回 提交于 2019-11-27 02:13:36

问题


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.


回答1:


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.




回答2:


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.




回答3:


This is an other possible way to do it :

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


来源:https://stackoverflow.com/questions/10448193/get-the-current-user-liferay-using-a-simple-java-code

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!