在liferay中限制portlet访问

时间:2011-09-20 15:45:52

标签: java liferay portlet

我有一个名为“asdf”的portlet。我使用AJAX重新加载一些视图。 要访问这些视图,我可以致电例如http://localhost:8080/asdf-portlet/view.jsp 这项工作正常,但未登录的人也可以访问这些视图,但他们应该无法访问。

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

4 个答案:

答案 0 :(得分:1)

您能直接提供访问视图的链接吗?也许这可以清除事情。

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

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

  • 过滤servlet请求以避免直接访问
  • (和/或)仅限制从liferay访问应用程序(您必须配置java 服务器(例如Tomcat)这样做。

答案 1 :(得分:0)

我认为您可能需要提供更多信息。你使用的是什么版本的liferay?你有权限吗?您将portlet添加到哪个页面?

指定只有“user”才能访问portlet,并且我认为您已将portlet添加到Guest的登陆页面。这意味着这个小屋是公共的。

答案 2 :(得分:0)

Liferay拥有广泛的基于等级权限的系统。我建议您将portlet权限限制为已登录的用户。通常,这可以通过删除guest / anonymous - >来完成。查看选项。

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

答案 3 :(得分:0)

您是否尝试删除

<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的