Authentication 使用简单的Java代码获取当前用户Liferay
我正在使用:Liferay 6.0.6和JBoss 5.1以及Struts2Authentication 使用简单的Java代码获取当前用户Liferay,authentication,jboss,struts2,liferay,portal,Authentication,Jboss,Struts2,Liferay,Portal,我正在使用:Liferay 6.0.6和JBoss 5.1以及Struts2 我的问题是,如何在登录后使用Java代码让当前用户进入Liferay。在doView/processAction方法中执行以下操作 User user = (User) request.getAttribute(WebKeys.USER); 或者使用主题显示对象。它包含另一个信息,如companyId、groupId等 ThemeDisplay td =(ThemeDisplay)request.getAttrib
我的问题是,如何在登录后使用Java代码让当前用户进入Liferay。在doView/processAction方法中执行以下操作
User user = (User) request.getAttribute(WebKeys.USER);
或者使用主题显示对象。它包含另一个信息,如companyId、groupId等
ThemeDisplay td =(ThemeDisplay)request.getAttribute(WebKeys.THEME_DISPLAY);
User user = td.getUser();
主题为显示、用户和WebKeys的类是portal-service.jar的一部分
如果您只需要一些id来标识当前用户,您也可以使用
String userId = request.getRemoteUser();
此解决方案不是特定于Liferay的,应该可以在jsr-286门户之间移植。Liferay提供了Util类 com.liferay.portal.util.PortalUtil 此类包含获取常用属性的所有实用工具方法
尝试使用
portal.getUser(PortletRequest-PortletRequest)
方法避免创建新对象和引用。这是另一种可能的方法:
private LiferayFacesContext liferayFacesContext = LiferayFacesContext.getInstance();
User currentUser=liferayFacesContext.getUser()
我的意思是,解决方案应该是Java代码,我们必须通过电子邮件检索当前用户:)您能告诉我更多关于实例“请求”的信息吗。如何初始化它?它可以是RenderRequest、ActionRequest、EventRequest或ResourceRequest。如果您不熟悉它们,那么应该阅读一些portlet教程,例如User currentUser=LiferayFacesContext.getInstance().getUser();主题显示有什么不同?@zhelon,没事,你从请求中获取主题显示,然后从中获取getUser(),PortalUtil.getUser()从请求中获取相同的内容,如果你看到PortalImpl.getUser(),你会注意到这个请求。getAttribute(WebKeys.USER);