我的目标是在身份验证后恢复用户
我可以通过jsp页面进行检索
<%@ taglib uri="http://java.sun.com/portlet" prefix="portlet" %>
<%@ taglib uri="http://liferay.com/tld/theme" prefix="liferay-theme" %>
<%@ taglib uri="http://liferay.com/tld/ui" prefix="liferay-ui" %>
<liferay-theme:defineObjects />
<portlet:defineObjects />
<liferay-ui:user-display userId="<%= user.getUserId() %>" />
但我想通过java代码
做同样的事情我向您展示了为什么我希望在通过liferay进行身份验证后检索登录用户
我的Java EE应用程序是使用struts2开发的,包含两个配置文件(或角色) :顾问兼董事
并且在此应用程序中我不创建用于身份验证的jsp页面,因为我使用了liferay身份验证(SSO的概念)
我使用liferay自动生成的用户表
所以在我的Java EE应用程序中,我必须检索连接的用户,我必须测试它的角色: 如果它是导演,那么我只看到了导演jsp页面,并以同样的方式看到了顾问角色
所以我必须在java代码中进行这种检索:用户登录时我的portlet中没有任何操作
必须在页面中填充在我的Java类中声明的用户对象
liferay的login.jsp(此jsp页面用于身份验证)
所以最后的测试参议员:
我的数据库中有两个用户:
姓名:Franco,电子邮件:franco@test.org,登录名:Franco,职务:董事 姓名:adam电子邮件:f @ test.org,登录名:Adamm,角色:顾问
在liferay中部署我的Java EE应用程序之后
如果我使用franco@test.org进行身份验证并登录:franco
我需要在应用程序中找到仅部署Director的jsp页面
在我的应用程序的java类中做这个senarion
import com.liferay.portal.model.User;
public class extends testAction ActionSupport {
private User user;
public void processAction (
ActionRequest actionRequest, ActionResponse actionResponse)
throws IOException, PortletException {
try {
user = PortalUtil.getUser (actionRequest);
} Catch (e PortalException) {
/ / TODO Auto-generated catch block
e.printStackTrace ();
} Catch (SystemException e) {
/ / TODO Auto-generated catch block
e.printStackTrace ();
}
}
public String initial() throws Exception {
user = PortalUtil.getUser (actionRequest);
if (user.getRole (). equals ("director"))
return "AuthDirector";
return "AuthoConsultant";
}
}
用于struts.xml文件
<? Xml version = "1.0" encoding = "UTF-8"?>
<! DOCTYPE struts PUBLIC
"- / / Apache Software Foundation / / DTD Struts Configuration 2.0 / / EN"
"Http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<package name="view" extends="struts-portlet-default" namespace="/view">
<action name="initial class="com.test.action.testAction" method="">
<result name="AuthDirector"> / WEB-INF/view/HomeDirector.jsp </ result>
<result name="AuthoConsultantr"> / WEB-INF/view/HomeConsultant.jsp </ result>
</ Action>
</ Package>
</ Struts>
我做了另一项测试但没有成功
import javax.faces.context.ExternalContext;
import javax.faces.context.FacesContext;
import com.liferay.portal.model.User;
public class extends testAction ActionSupport {
private User user;
FacesContext fc = FacesContext.getCurrentInstance();
ExternalContext externalContext = fc.getExternalContext();
Long id = Long.parseLong(externalContext.getUserPrincipal().getName());
public String initial() throws Exception {
user = UserLocalServiceUtil.getUserById(id);
if (user.getRole (). equals ("director"))
return "AuthDirector";
return "AuthoConsultant";
}
}