禁止访问 liferay 中的内部文件

Posted

技术标签:

【中文标题】禁止访问 liferay 中的内部文件【英文标题】:disallow access of internal files in liferay 【发布时间】:2015-04-29 12:01:13 【问题描述】:

在liferay中我有 --tomcat --webapps --我的图片 --我的portlet 因此,使用 my-portlet 中的代码,我已经为特定用户提供了指向 myimages 文件夹中给定文件的链接。 链接将是 http://localhost:8080/myimages/User1.jpg

问题说明:我必须限制用户(而不是在 liferay 中定义的角色),以便他/她不能访问 myimages中的任何文件> 文件夹,因为她/他的用户直接点击上面的链接。 我测试过的内容:

    我已经检查了 .htaccess 文件将有用,因为 liferay 已经 tomcat 而不是 apache 服务器。 创建了一个过滤器类,我可以通过它拦截任何请求 应该处理。 openLDAP 无法使用,因为我们有单独的身份验证 机制。 所以如果有人知道如何处理这个安全问题,请给我建议。

【问题讨论】:

【参考方案1】:

通过单个 web 应用程序(如 myimages)解析的 URL,因此不通过 Liferay,不会知道访问 Liferay 的用户:它们将与其他 URL 很好地隔离(在这种情况下完全不相关) 网络应用程序 Liferay。

您可以做的是通过 portlet 插件提供这些文件,并通过 portlet 中的资源 URL 提供图像。这正确地通过了门户上下文(事实上,URL 将指向 Liferay,尽管在不同的 web 应用程序中实现)并且您将能够检查当前用户的权限。然后只需读取文件并将其通过管道传输到ResourceResponse 的输出流中。

如果文件确实是静态 Web 资源,您可能希望将它们放在 myimages/WEB-INF/images - 因为 Tomcat 将拒绝直接提供 WEB-INF 下的所有内容,但您的 portlet 将能够访问这些文件.

【讨论】:

以上是关于禁止访问 liferay 中的内部文件的主要内容,如果未能解决你的问题,请参考以下文章

liferay 6.1 中的友好 URL

如何修复 Liferay 7.4.2 中禁止的 URL 重定向?

Liferay 7:Liferay内部博客地址

为啥 C# 禁止对接口成员进行内部访问?

liferay中的图片上传大小限制

在 osgi 文件夹中复制后,Liferay 7 tomcat 中的战争在哪里爆炸