estoy trabajando con: Liferay 6.0.6 con JBoss 5.1 y Struts2.Obtener el usuario actual Liferay utilizando un simple código Java
Mi pregunta es, ¿cómo conseguir que el usuario actual en Liferay una vez iniciada la sesión, utilizando un código deJava.
estoy trabajando con: Liferay 6.0.6 con JBoss 5.1 y Struts2.Obtener el usuario actual Liferay utilizando un simple código Java
Mi pregunta es, ¿cómo conseguir que el usuario actual en Liferay una vez iniciada la sesión, utilizando un código deJava.
En el método de doView/processAction hacer después
User user = (User) request.getAttribute(WebKeys.USER);
o utilizar el objeto ThemeDisplay. Contiene otra información como CompanyID, groupId, ...
ThemeDisplay td =(ThemeDisplay)request.getAttribute(WebKeys.THEME_DISPLAY);
User user = td.getUser();
Clases ThemeDisplay, webkeys nad usuario forman parte del portal service.jar.
Si necesita sólo algunas de ID para identificar usuario actual también se puede utilizar
String userId = request.getRemoteUser();
Esta solución no es Liferay específico y debe ser portátiles entre JSR-286 portales.
muchas gracias :) Voy a probar todo esto y te diré – Sabrina
me puedes decir más sobre la instancia "solicitud". cómo inicializarlo? – Sabrina
Es RenderRequest, ActionRequest, EventRequest o ResourceRequest. Si no está familiarizado con ellos, entonces debe leer algunos tutoriales de portlets, por ejemplo, http://www.liferay.com/documentation/liferay-portal/6.0/development/-/ai/understanding-the-two-phases-of- portlet-execution –
Liferay proporciona la clase Util
com.liferay.portal.util.PortalUtil
Esta clase contiene todos los métodos de utilidad para obtener los atributos de uso frecuente.
Pruebe utilizar el método PortalUtil.getUser(PortletRequest portletRequest)
para evitar crear nuevos objetos y referencias.
¿Cuál es la diferencia con ThemeDisplay? – cheloncio
@zhelon, nada, obtiene themeDisplay de la solicitud, y luego getUser() de él, PortalUtil.getUser() obtiene lo mismo de la solicitud, si ve PortalImpl.getUser() entonces verá este request.getAttribute (WebKeys. USUARIO); –
Ésta es una otra forma posible de hacerlo:
private LiferayFacesContext liferayFacesContext = LiferayFacesContext.getInstance();
User currentUser=liferayFacesContext.getUser()
usando por ID de acceso? –
Quiero decir, la solución debe ser un código de Java y tenemos que recuperar el usuario actual por correo electrónico :) – Sabrina