我有一个名为“asdf”的portlet。我使用AJAX重新加载小视图。 要访问这些视图,我可以打电话给http://localhost:8080/asdf-portlet/view.jsp 这工作正常,除了没有登录的人也可以访问这些视图,但他们不应该能够。在liferay中限制portlet访问
对此问题的任何解决方案? 是否有某种只有登录用户可以访问的会话?
我有一个名为“asdf”的portlet。我使用AJAX重新加载小视图。 要访问这些视图,我可以打电话给http://localhost:8080/asdf-portlet/view.jsp 这工作正常,除了没有登录的人也可以访问这些视图,但他们不应该能够。在liferay中限制portlet访问
对此问题的任何解决方案? 是否有某种只有登录用户可以访问的会话?
我想你可能需要提供更多信息。你使用的是什么版本的liferay?你有没有指定权限?您将portlet添加到了哪个页面?
指定只有“用户”可以访问Portlet,并且我认为您已将该Portlet添加到访客的登陆页面。这意味着porlet是公开的。
Liferay拥有广泛的基于分层权限的系统。我建议您将portlet权限限制为已登录的用户。通常,这是通过删除guest/anonymous - > view选项来完成的。
从您的portlet配置部分(通常通过单击小扳手图标访问)选择权限部分并取消选中访客选项。
我改变了权限,但是如果我像上面的例子那样输入URL,它仍然可以访问。当我在门户中查看portlet时,它说我没有权限查看它。 – user489872
你尝试删除
<security-role-ref>
<role-name>guest</role-name>
</security-role-ref>
从portlet.xml中?
我也是从Liferay的-portlet.xml中删除
<role-mapper>
<role-name>guest</role-name>
<role-link>Guest</role-link>
</role-mapper>
。
你能否提供链接以直接访问您的视图?也许这可以清除事情。
如果这是您在第一篇文章中提供的链接,我可以想象为什么您正在查看portlet。这是因为你没有调用任何portlet,你只调用servlet部分。这种类型的调用与liferay无关,所以portlet相关的xml文件不会被tomcat(或任何其他java服务器)读取。
正如已经doc_180你必须要么
它的Liferay 6.0.6(?)。我把它添加到启动页面。当我更改的权限,视图仍然可以访问。 – user489872
我想我明白你的问题现在,如果你正在访问你的ap直接折衷,那么它就在门户的范围之外。最好的办法是编写一个servlet过滤器,它会抛出未授权的异常。这样,您可以阻止直接访问您的应用程序。 –