使用Unfiltered和Jetty提供没有目录浏览的静态文件

时间:2015-01-18 03:56:37

标签: scala jetty unfiltered

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

Jetty具有dirAllowed设置,但似乎无法从Unfiltered轻松访问。

2 个答案:

答案 0 :(得分:0)

这不是一个完整的答案,但我打赌你可以通过查看两个地方把它放在一起:
1.未经过滤的码头代码中的org.eclipse.jetty.server.Server类型的val unfiltered.jetty.Server.under。 2. 'Configuring a File Server'在Jetty 8(我认为)wiki中。也许那个resource_handler.setDirectoriesListed(true)调用了?

答案 1 :(得分: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)