-1

如何在不允许目录浏览的情况下让 unfiltered-jetty 提供静态文件?

Jetty 有 dirAllowed 设置,但它似乎不容易从 Unfiltered 访问。

4

2 回答 2

0

这不是一个完整的答案,但我敢打赌,您可以通过查看 2 个地方将其放在一起:
1. unfiltered-jetty 代码中 org.eclipse.jetty.server.Server 类型的 val unfiltered.jetty.Server.underlying
2。 Jetty 8(我认为)wiki 中的“配置文件服务器”。也许那个 resource_handler.setDirectoriesListed(true) 调用?

于 2015-01-20T00:05:56.040 回答
0

这适用于使用 Jetty 8 的 Unfiltered 0.8.4:

import org.eclipse.jetty.server.handler.{HandlerCollection,ContextHandler}
import org.eclipse.jetty.server.Handler

  def disableDirBrowsing(hc: Array[Handler]) {
    hc.map { h =>
      h match {
        case nested: HandlerCollection => disableDirBrowsing(nested.getHandlers)
        case c: ContextHandler =>
          c.setInitParameter("org.eclipse.jetty.servlet.Default.dirAllowed", "false")
        case _ => // ignore everything else
      }
    }
  }

如果在向其添加上下文srv是您的未过滤服务器对象,您现在可以禁用目录浏览,如下所示:

disableDirBrowsing(srv.underlying.getHandlers)
于 2015-01-21T18:34:08.687 回答