不使用.htaccess / apache conf防止访问war文件

时间:2011-04-10 11:00:59

标签: java tomcat tomcat6

目前,当我将 war 文件部署到Tomcat时,可​​以通过foo.com/myapp.war之类的内容从URL下载。

大多数地方建议您在.htaccess文件中放入一个条目,以防止公共访问任何war文件,或者在Apache配置中失败该等效条目。

不幸的是,我的主机不提供对Apache配置的访问(虽然我可以访问Tomcat confs)和.htaccess文件不适用于所有Tomcat / Java相关的托管环境。非常令人失望。在这方面,他们一直没有帮助。

没有诉诸“找到另一个主持人”之类的东西(除了这个问题他们没关系 - 我宁愿留在这里,直到我的应用程序变得太大),还有什么我可以做的,以防止公众用户访问我的战争文件,但仍允许Tomcat在扫描时部署应用程序?

例如,是否可以为Tomcat指定一个目录来扫描war文件,还是将war部署到公共目录中?

感谢。

2 个答案:

答案 0 :(得分:1)

最好在https://serverfault.com/询问。这一切都归结为Tomcat的设置方式。

vanilla安装程序将在CATALINE_HOME下有一个名为webapps的文件夹。您将WAR存档放在那里(它们会自动解压缩并部署)。无法从HTTP访问这些文件夹(您无法从某些URL下载WAR存档,例如/webapps/my-test.war)。 webapps文件夹中的这些应用程序部署到某些上下文根。例如,默认情况下,应用程序my-test.war将部署为yourhost.com/my-test /.

如果您可以从foo.com/myapp.war下载WAR档案,也许可以查看CATALINA_HOME / webapp / ROOT应用程序正在执行的操作。默认情况下,它部署在foo.com下。从主机询问Tomcat配置文件,以确定它们使用的是哪种自定义配置。

答案 1 :(得分:1)

您可以将.war个文件放在Tomcat可以访问的任何位置。但你必须告诉Tomcat它,所以它会把它们拿起来。您可以通过在

中放置配置XML文件来完成此操作
<CATALINA_HOME>/conf/Catalina/localhost/myWebapp.xml

有关于放入该文件的内容的样本myWebapp.xml,e。 G。 here,步骤“4)”。当然,the official documentation