Получить текущего пользователя Liferay с помощью простого кода Java Я работаю с Liferay 6.0.6 с JBoss 5.1 и Struts2. Мой вопрос: как получить текущего пользователя в Liferay после входа в систему, используя код Java. Ответ 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()
Ответ 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()