【发布时间】:2012-05-13 23:03:12
【问题描述】:
我正在使用 Liferay 6.0.6 和 JBoss 5.1 和 Struts2。
我的问题是,如何在 Liferay 中使用 Java 代码登录当前用户。
【问题讨论】:
-
我的意思是,解决方案应该是Java代码,我们必须通过电子邮件检索当前用户:)
标签: authentication jboss struts2 liferay portal
我正在使用 Liferay 6.0.6 和 JBoss 5.1 和 Struts2。
我的问题是,如何在 Liferay 中使用 Java 代码登录当前用户。
【问题讨论】:
标签: authentication jboss struts2 liferay portal
在您的 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 的一部分。
如果您只需要一些 id 来识别当前用户,您也可以使用
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()
【讨论】: