在生命周期中限制portlet访问



我有一个名为"asdf"的portlet。我使用AJAX重新加载小视图。要访问这些视图,我可以调用例如http://localhost:8080/asdf-portlet/view.jsp除了没有登录的人也可以访问这些视图之外,这工作得很好,但他们不应该能够访问这些视图。

这个问题有什么解决办法吗?是否存在某种只有登录用户才能访问的会话?

能否提供直接访问视图的链接?也许这能澄清一些问题。

如果它是您在第一篇文章中提供的链接,我可以想象您为什么要查看portlet。这是因为您没有调用任何portlet,您只调用servlet部分。这种类型的调用与liferay无关,因此tomcat(或任何其他java服务器)不会读取与portlet相关的xml文件。

正如doc_180已经建议的那样,您必须

  • 过滤servlet请求以避免直接访问
  • (和/或)限制只能从liferay访问应用程序(你必须配置java服务器(如。

我想你可能需要提供更多的信息。你使用的是哪种版本的liferay ?您是否指定了权限?您将portlet添加到哪个页面?

指定只有"user"可以访问portlet,而且我认为您已经将portlet添加到访客的登陆页面。这意味着该portlet是公共的。

Liferay有一个广泛的基于权限的分级系统。我建议将portlet权限限制为已登录的用户。一般来说,这是通过删除guest/anonymous -> view选项来完成的。

从您的portlet配置部分(通常通过单击小扳手图标访问)选择权限部分并取消客户机选项。

是否尝试删除

<security-role-ref>
    <role-name>guest</role-name>
</security-role-ref>

portlet . xml ?从

我也删除了

<role-mapper>
  <role-name>guest</role-name>
  <role-link>Guest</role-link>
</role-mapper>
从liferay-portlet.xml

最新更新