我不确定我是否可以通过简单的配置实现这一点,或者我需要为它覆盖LogoutAction。
我已经配置了多个组织,每个组织都有自己的网站,我想导航到不同网站的自定义网址,而不是从liferay注销时的默认网址。
[EDITED] 我想在每个网站的不同网址上导航,而不是常用的网址。
谢谢
答案 0 :(得分:1)
为此你可以使用default.logout.page.path
属性(在portal-ext.properties文件中)
default.logout.page.path=
#default.logout.page.path=/web/guest/logout
答案 1 :(得分:1)
我认为你可以通过钩子覆盖LogoutPostAction
来实现这一点。
在你的LogoutPostAction
中定义你的portal.properties
课程:
logout.events.post=com.my.action.MyLogoutPostAction
以下是要重定向到所需网页的类的示例代码:
public class MyLogoutPostAction extends Action {
@Override
public void run(HttpServletRequest request, HttpServletResponse response)
throws ActionException {
try {
doRun(request, response);
}
catch (Exception e) {
throw new ActionException(e);
}
}
protected void doRun(HttpServletRequest request, HttpServletResponse response)
throws Exception {
long groupId = PortalUtil.getScopeGroupId(httpReq);
// code to fetch the Group
// ....
// ....
//
String postLogoutURL = "create your own URL";
// if required: add a parameter
postLogoutURL = HttpUtil.setParameter(postLogoutURL, "my_param", "my_param_value");
// redirect to that URL
response.sendRedirect(postLogoutURL);
}
}
如果Liferay丢失了用户注销的当前组的上下文,那么使用此方法的唯一可能是路障。我还没有测试过代码。