Liferay自定义登录页还是最后路径?

Liferay自定义登录页还是最后路径?,liferay,liferay-6,Liferay,Liferay 6,用户A-->具有“XYZ”角色,并且具有“ABC”作为主站点用户B--> 具有“PQR”角色,并具有“DEF”作为主站点 每当用户A登录时,我需要将其重定向到站点“ABC”,而不是默认的来宾站点。 每当用户B登录时,我需要将他重定向到站点“DEF”,而不是默认的来宾站点 通过胡克,我做到了这一点 钩子属性: login.events.post=com.mytest.portal.events.myloginpostation 然后在MyLoginPostation中,我检查了用户角色,然后将其重

用户A-->具有“XYZ”角色,并且具有“ABC”作为主站点用户B--> 具有“PQR”角色,并具有“DEF”作为主站点

每当用户A登录时,我需要将其重定向到站点“ABC”,而不是默认的来宾站点。 每当用户B登录时,我需要将他重定向到站点“DEF”,而不是默认的来宾站点

通过胡克,我做到了这一点

钩子属性: login.events.post=com.mytest.portal.events.myloginpostation

然后在MyLoginPostation中,我检查了用户角色,然后将其重定向到相应的站点

现在,假设用户A已经在任何网站上订阅了该博客。他收到了一个包含该博客链接的电子邮件

用户A已注销,然后他尝试通过直接链接访问该博客。由于用户A未登录,他将被重定向到登录页面。 在登录时,他被重定向到网站“ABC”,而不是去那个博客。这是因为我将用户重定向到主站点


所以,我如何实现这种场景,即当用户未登录时尝试访问该博客页面,然后登录时,他应该转到该博客页面,当用户尝试登录门户时,他应该重定向到主页

您可以通过
request.getSession().getAttribute(“最后路径”)


根据lastpath对象的路径值,您可以确定重定向到哪里。

通过直接链接进行必要的登录,Liferay将转发路径设置为url参数。您可以从请求中读取
重定向
参数,并决定是否转发到特定页面

有趣!您可以根据重定向url使用liferay的默认登录机制来实现这一点,如果直接点击任何页面,则根据用户角色对其进行过滤。将LoginAction.java覆盖到插件环境并通过代码进行调试,并在执行方法中添加过滤逻辑。@Parkash Kumar:我可以将用户重定向到其主页,但当用户在订阅后单击他们在电子邮件中获得的链接时,此功能会增加一个障碍所以我想知道是否有任何方法可以识别登录请求是否只是为了登录而不是查看订阅og资产(如博客)。一旦用户成功登录,您必须确定他来自另一个页面或默认登录页面。在这些情况下,如何弹出快速登录对话框?这是最后一条路径LoginPostation的钩子中的属性只给出登录portlet所在的路径,而不是请求的起始路径。例如,如果您注销,然后尝试访问say test site的say test页面,那么它会将您重定向到登录页面。现在,如果您在guest site的主页上有您的登录portlet,那么loginpostation中的最后一个路径将是/guest/home,而不是/test/test,这是我所需要的,以便我可以确定这不是默认登录必须将用户转发到他的主页。是的,马克,我只遵循这种方法。现在,逻辑在我的本地环境中起作用。但当我测试liferay的自动登录功能时,它并没有将其转发到我通过钩子设置的默认登录页。您使用自动登录功能吗?你有开发一个吗?是的,我用的是定制的AutoLogin