Foren

How to get real user in portlet?

Gwowen Fu, geändert vor 11 Jahren.

How to get real user in portlet?

Expert Beiträge: 315 Beitrittsdatum: 27.12.10 Neueste Beiträge
Hi,

After impersonating a user, how could I get the real user object or id?

Thanks!
Gwowen
thumbnail
mohammad azaruddin, geändert vor 11 Jahren.

RE: How to get real user in portlet?

Expert Beiträge: 492 Beitrittsdatum: 17.09.12 Neueste Beiträge
ThemeDisplay td =(ThemeDisplay)request.getAttribute(WebKeys.THEME_DISPLAY);
User user = td.getUser();
Gwowen Fu, geändert vor 11 Jahren.

RE: How to get real user in portlet?

Expert Beiträge: 315 Beitrittsdatum: 27.12.10 Neueste Beiträge
mohammad azaruddin:
ThemeDisplay td =(ThemeDisplay)request.getAttribute(WebKeys.THEME_DISPLAY);
User user = td.getUser();


Tried that already and ThemeDisplay.getUser() returns the impersonated user, not the real user.
Also tried PortalUtil.getUserId(request) and it also returns the impersonated user ID.
thumbnail
David H Nebinger, geändert vor 11 Jahren.

RE: How to get real user in portlet?

Liferay Legend Beiträge: 14919 Beitrittsdatum: 02.09.06 Neueste Beiträge
To get the real user id:

1. enable the com.liferay.portal.servlet.filters.audit.AuditFilter by setting it to true in portal-ext.properties.
2. use the following code:

AuditRequestThreadLocal auditRequest = AuditRequestThreadLocal.getAuditThreadLocal();
if (auditRequest != null) realUserId = auditRequest.getRealUserId();


Or you can do it the way AuditFilter does by getting the original http request, get the session from the request, then extract the WebKeys.USER_ID attribute.
Gwowen Fu, geändert vor 11 Jahren.

RE: How to get real user in portlet? (Antwort)

Expert Beiträge: 315 Beitrittsdatum: 27.12.10 Neueste Beiträge
Thanks for the reply. I missed the ThemeDisplay.getRealUser() method. ThemeDisplay.getRealUser() works.