wildfly /下载 - 如何禁用文件夹/文件列表

时间:2014-02-13 19:20:18

标签: security wildfly

我目前在我的WAR中的web.xml中使用此设置,以确保无论容器是否正确配置,应用程序本身都不会直接通过Web列出文件/文件夹:

    <servlet>
        <servlet-name>DefaultNoListing</servlet-name>
        <servlet-class>org.apache.catalina.servlets.DefaultServlet
        </servlet-class>
        <init-param>
            <param-name>debug</param-name>
            <param-value>0</param-value>
        </init-param>
        <init-param>
            <param-name>listings</param-name>
            <param-value>false</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>
....
    <servlet-mapping>
        <servlet-name>DefaultNoListing</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>

问题:在部署到Wildfly / Undertow时,如何做类似的事情,这样每个应用程序都可以确保没有文件夹/文件列表,无论服务器的配置如何?

-D

2 个答案:

答案 0 :(得分:4)

作为更新,此功能现已实施,并将成为WildFly 8.0.1的一部分

您可以使用以下配置修改默认的servlet行为:

 <servlet>
      <servlet-name>default</servlet-name>
      <servlet-class>io.undertow.servlet.handlers.DefaultServlet</servlet-class>
      <init-param>
          <param-name>directory-listing</param-name>
          <param-value>true</param-value>
      </init-param>
 </servlet>

这将覆盖默认servlet的配置,并将启用目录列表。 默认情况下,列表已被禁用。

答案 1 :(得分:1)

目前默认的servlet根本不支持在Undertow / WildFly中列出文件夹。

这是我们在实施时遗漏的东西。

我创建https://issues.jboss.org/browse/UNDERTOW-195来实现此目的。

一旦我们实现了它,您就可以像现在一样配置它,只需要类名

io.undertow.servlet.handlers.DefaultServlet