Liferay 我如何在注销时登录到自定义url
我不确定我是否可以通过简单的配置来实现这一点,或者我需要为它覆盖LogoutAction 我已经配置了多个组织,每个组织都有自己的站点,我希望导航到不同站点的自定义url,而不是从liferay注销时的默认url [已编辑] 我想为每个站点导航不同的url,而不是一个公共urlLiferay 我如何在注销时登录到自定义url,liferay,logout,Liferay,Logout,我不确定我是否可以通过简单的配置来实现这一点,或者我需要为它覆盖LogoutAction 我已经配置了多个组织,每个组织都有自己的站点,我希望导航到不同站点的自定义url,而不是从liferay注销时的默认url [已编辑] 我想为每个站点导航不同的url,而不是一个公共url 感谢您使用default.logout.page.path属性(在portal-ext.properties文件中) 我认为可以通过钩子重写LogoutPostAction来实现这一点 在portal中定义您的Logou
感谢您使用
default.logout.page.path
属性(在portal-ext.properties文件中)
我认为可以通过钩子重写
LogoutPostAction
来实现这一点
portal中定义您的LogoutPostAction
类。钩子的属性
:
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丢失了用户从中注销的当前组的上下文,那么使用这种方法唯一可能造成障碍的就是Liferay。我还没有测试代码。是的,谢谢。但我在我的要求中遗漏了一点。。。这是一个选项,但这总是让我为不同的网站找到相同的url。万一我想为不同的站点登录到不同的url,该怎么办。我已经为此编辑了我的原始问题。ThanksLiferay确实会丢失当前组的上下文。它显示为“来宾”。在这种情况下,您会怎么做?
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);
}
}