实现方式:通过EXT环境定制,增加一个针对login的PostAction
第一步:在ext中创建以下java类:
以下这行代码指定跳转的目标url,此url可以根据自己的规则动态确定,例如根据用户所在组织,所在用户组……
第二步:
更改ext中的portal-ext.properties文件,增加以下两行:
第三步:
ext环境中 ant deploy
第一步:在ext中创建以下java类:
package com.liferay.portal.events;
import java.util.HashMap;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import com.liferay.portal.kernel.events.Action;
import com.liferay.portal.kernel.events.ActionException;
import com.liferay.portal.struts.LastPath;
import com.liferay.portal.util.WebKeys;
public class CustomLoginPostAction extends Action {
@Override
public void run(HttpServletRequest req, HttpServletResponse res)
throws ActionException {
try {
HttpSession ses = req.getSession();
// To manually set a path for the user to forward to, edit
// portal.properties and set auth.forward.by.last.path to true.
Map params = new HashMap();
//params.put("p_l_id", new String[] {"PRI.3.1"});
//params.put("p_l_id", new String[] {"PUB.1.1"});
LastPath lastPath = new LastPath("", "/group/cw/1", params);
ses.setAttribute(WebKeys.LAST_PATH, lastPath);
}
catch (Exception e) {
throw new ActionException(e);
}
}
}
以下这行代码指定跳转的目标url,此url可以根据自己的规则动态确定,例如根据用户所在组织,所在用户组……
LastPath lastPath = new LastPath("", "/group/cw/1", params);
第二步:
更改ext中的portal-ext.properties文件,增加以下两行:
auth.forward.by.last.path=true
login.events.post=com.liferay.portal.events.LoginPostAction,com.liferay.portal.events.CustomLoginPostAction
第三步:
ext环境中 ant deploy