Liferay:我如何在登出时登陆自定义网址

时间:2016-01-22 06:01:21

标签: liferay logout

我不确定我是否可以通过简单的配置实现这一点,或者我需要为它覆盖LogoutAction。

我已经配置了多个组织,每个组织都有自己的网站,我想导航到不同网站的自定义网址,而不是从liferay注销时的默认网址。

[EDITED] 我想在每个网站的不同网址上导航,而不是常用的网址。

谢谢

2 个答案:

答案 0 :(得分:1)

为此你可以使用default.logout.page.path属性(在portal-ext.properties文件中)

default.logout.page.path=
#default.logout.page.path=/web/guest/logout

答案 1 :(得分:1)

我认为你可以通过钩子覆盖LogoutPostAction来实现这一点。

  1. 在你的LogoutPostAction中定义你的portal.properties课程:

    logout.events.post=com.my.action.MyLogoutPostAction
    
  2. 以下是要重定向到所需网页的类的示例代码:

    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);
        }
    
    }
    
  3. 如果Liferay丢失了用户注销的当前组的上下文,那么使用此方法的唯一可能是路障。我还没有测试过代码。