如何在不允许目录浏览的情况下让 unfiltered-jetty 提供静态文件?
Jetty 有 dirAllowed 设置,但它似乎不容易从 Unfiltered 访问。
如何在不允许目录浏览的情况下让 unfiltered-jetty 提供静态文件?
Jetty 有 dirAllowed 设置,但它似乎不容易从 Unfiltered 访问。
这不是一个完整的答案,但我敢打赌,您可以通过查看 2 个地方将其放在一起:
1. unfiltered-jetty 代码中 org.eclipse.jetty.server.Server 类型的 val unfiltered.jetty.Server.underlying
2。 Jetty 8(我认为)wiki 中的“配置文件服务器”。也许那个 resource_handler.setDirectoriesListed(true) 调用?
这适用于使用 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)