1

我目前在我的 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

4

2 回答 2

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 的配置并启用目录列表。默认情况下,列表被禁用。

于 2014-03-04T10:42:51.967 回答
1

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

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

我创建了https://issues.jboss.org/browse/UNDERTOW-195来实现这一点。

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

io.undertow.servlet.handlers.DefaultServlet
于 2014-02-25T16:35:12.417 回答