Я работаю с: Liferay 6.0.6 с JBoss 5.1 и Struts2.
Мой вопрос заключается в том, как получить текущего пользователя в Liferay после входа в систему, используя код Java.
Я работаю с: Liferay 6.0.6 с JBoss 5.1 и Struts2.
Мой вопрос заключается в том, как получить текущего пользователя в Liferay после входа в систему, используя код Java.
В вашем методе 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.
Если вам нужен только какой-то идентификатор для идентификации текущего пользователя, вы также можете использовать
String userId = request.getRemoteUser();
Это решение не относится к Liferay и должно быть переносимым между порталами jsr-286.
Liferay предоставляет класс Util
com.liferay.portal.util.PortalUtil
Этот класс содержит все служебные методы для получения часто используемых атрибутов.
Попробуйте использовать метод PortalUtil.getUser(PortletRequest portletRequest)
, чтобы избежать создания новых объектов и ссылок.
Это другой возможный способ сделать это:
private LiferayFacesContext liferayFacesContext = LiferayFacesContext.getInstance();
User currentUser=liferayFacesContext.getUser()