Liferay 我如何在注销时登录到自定义url

Liferay 我如何在注销时登录到自定义url,liferay,logout,Liferay,Logout,我不确定我是否可以通过简单的配置来实现这一点,或者我需要为它覆盖LogoutAction 我已经配置了多个组织,每个组织都有自己的站点,我希望导航到不同站点的自定义url,而不是从liferay注销时的默认url [已编辑] 我想为每个站点导航不同的url,而不是一个公共url 感谢您使用default.logout.page.path属性(在portal-ext.properties文件中) 我认为可以通过钩子重写LogoutPostAction来实现这一点 在portal中定义您的Logou

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

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

[已编辑] 我想为每个站点导航不同的url,而不是一个公共url


感谢您使用
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);
        }
    
    }