Login Liferay自定义单点登录,带有重定向和参数

Login Liferay自定义单点登录,带有重定向和参数,login,liferay,parameter-passing,single-sign-on,hook,Login,Liferay,Parameter Passing,Single Sign On,Hook,这是我在这里的第一个问题,它相当棘手,因为我没有在网上找到足够的相关资源。所以我真的希望能得到一些帮助: 我正在使用Liferay 6.2 GA4进行自定义单点登录。因此,我开发了一个自定义登录挂钩,可以处理我的URL,如下所示: 从这里,我解码q参数以获得登录参数和其他参数,我需要决定重定向到哪个页面,并将属性传递给请求 request.setAttribute("myParam", recordId); 及 我还有一个LoginPostation,之后会调用它,现在它就在这里,变得很棘手

这是我在这里的第一个问题,它相当棘手,因为我没有在网上找到足够的相关资源。所以我真的希望能得到一些帮助:

我正在使用Liferay 6.2 GA4进行自定义单点登录。因此,我开发了一个自定义登录挂钩,可以处理我的URL,如下所示:

从这里,我解码q参数以获得登录参数和其他参数,我需要决定重定向到哪个页面,并将属性传递给请求

request.setAttribute("myParam", recordId);

我还有一个LoginPostation,之后会调用它,现在它就在这里,变得很棘手:

public final void run(final HttpServletRequest request, final HttpServletResponse response)
    throws ActionException {
    ...
    final PortletURL redirectURL = PortletURLFactoryUtil.create(
        request, "portlet_WAR_myportlet",
  >>>>  PortalUtil.getPlidFromPortletId(???, "portlet_WAR_myportlet"),
        PortletRequest.RENDER_PHASE);

        redirectURL.setParameter("myParam", String.valueOf(request.getAttribute("myParam")));

        response.sendRedirect(redirectURL.toString());
}
因此,我有portlet名称(PortletId),但我无法从中获取Plid,因为我现在没有主题显示

第一个问题:此时如何创建PortletURL,我可以在sendRedirect()中使用它? 第二:我还尝试设置属性并硬编码sendRedirect(“/urlToMyPortlet”),但是我现在不能再使用它了,因为当我在下一页尝试获取它时,它会丢失(并且为null)

有什么建议吗

提前多谢了,
rom12three

PortalTil.getPlidFromPortletId(groupId,portletId)需要groupId,您有groupId吗?另外,如果您传递一个硬编码的URL,那么您只能选择将参数作为queryString传递,并从httpServletRequest对象提取它。
public final void run(final HttpServletRequest request, final HttpServletResponse response)
    throws ActionException {
    ...
    final PortletURL redirectURL = PortletURLFactoryUtil.create(
        request, "portlet_WAR_myportlet",
  >>>>  PortalUtil.getPlidFromPortletId(???, "portlet_WAR_myportlet"),
        PortletRequest.RENDER_PHASE);

        redirectURL.setParameter("myParam", String.valueOf(request.getAttribute("myParam")));

        response.sendRedirect(redirectURL.toString());
}