如何在WASCE Web应用程序中允许symlnked目录遍历

时间:2012-05-02 17:46:25

标签: geronimo symlink-traversal

我目前正在RHEL 4 Update 9上运行WebSphere Application Server Community Edition v3.0.0.1。

我之前在WAS 6.1上运行过一个Web应用程序但是我们想要转移到WASCE。实现是这样的,我们在Web Content文件夹中有一个符号链接目录“symdir”,它指向同一文件系统上的另一个文件夹,但在Web应用程序和WASCE之外。在封面下,我们将动态构建符号链接目录中的内容,然后创建指向它的链接。例如在symdir中 - > / tagHome我们将创建/tagFile/some.tag,以便web应用程序将其知道为symdir / tagFile / some.tag,而f / s将知道它是/tagHome/tagFile/some.tag。然后我们将在http://hostname:port/context/symdir/tagFile/some.tag创建一个链接并渲染文件 - 它是简单的xml。这一切都在WAS 6.1之前有效。

但是,现在当我将应用程序移动到WASCE时,此类配置不再有效。具体来说,我无法遍历任何符号链接目录并获取任何内容。就此而言,我甚至尝试在Web应用程序包中添加目录并部署w /然后尝试点击它们。就像任何/ context / *被阻止一样!

我在网上挖掘的最后一件事是org.apache.geronimo.tomcat.GeronimoStandardContext.allowLinking = true。似乎没有改变行为。

此处也发现类似JSP files in external directory的内容,但在web.xml中添加上下文模块会导致编译错误。

除了编写servlet之外,还有什么想法吗?谢谢你的帮助!

1 个答案:

答案 0 :(得分:1)

这解决了这个问题: 在/etc/system.properties文件中,我添加了:

org.apache.geronimo.tomcat.GeronimoStandardContext.allowLinking=true
org.apache.geronimo.webapplication.stage=development

重新启动WASCE,这让我可以提供静态内容。可能不是每个WASCE用户的最佳解决方案,但为我们工作。