连接用户出错

时间:2012-05-06 14:24:42

标签: java html jsp java-ee

我的目标是在身份验证后恢复用户

我可以通过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";
    }


}

0 个答案:

没有答案