Подтвердить что ты не робот

Получить текущего пользователя Liferay с помощью простого кода Java

Я работаю с Liferay 6.0.6 с JBoss 5.1 и Struts2.

Мой вопрос: как получить текущего пользователя в Liferay после входа в систему, используя код Java.

4b9b3361

Ответ 1

В вашем методе 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 являются частью портала-service.jar.

Если вам нужен только некоторый идентификатор для идентификации текущего пользователя, вы также можете использовать

String userId = request.getRemoteUser();

Это решение не является специфичным для Liferay и должно быть портативным среди порталов jsr-286.

Ответ 2

Liferay предоставляет класс Util

com.liferay.portal.util.PortalUtil

Этот класс содержит все методы утилиты для получения часто используемых атрибутов.

Попробуйте использовать метод PortalUtil.getUser(PortletRequest portletRequest), чтобы избежать создания новых объектов и ссылок.

Ответ 3

Это еще один способ сделать это:

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