如何从带有嵌入式码头的 jar 文件中删除对目录的访问?

How to remove access to a dir from a jar file with embedded jetty?

抱歉,这是一个奇怪的问题,所以我不知道从哪里开始。可能是我表达的不好,请见谅。

我们正在 运行安装 Kafka 偏移量监视器程序。命令看起来像这样:

java -cp KafkaOffsetMonitor-assembly-0.2.0.jar com.quantifind.kafka.offsetapp.OffsetGetterWeb --zk zk1.domain.com zk2.domain.com zk3.domain.com --port 8000 --refresh 10.seconds --retain 2.days

这个 cmd 似乎 运行 一个关闭端口 8000 的网络服务器,并允许我们从浏览器查看我们服务器上 Kafka 的不同队列。

如果我们转到http://webpage.domain.com:8000/scripts,它会显示这个"directory"的内容。我在 tmp 目录中展开了 jar 文件,我发现了一个名为 scripts.

的 "directory"

我需要限制显示脚本目录的内容,但看到它在一个 jar 文件中是如何充当网络服务器的,我该怎么做?我没有目录 运行 chmod 000 on 来限制访问。

提前感谢任何人的帮助。 Google 不理解我所以我需要一个人来理解我的混乱。

更新:我发现了几个具有潜在解决方案的堆栈溢出帖子。但是,它对我也不起作用。我解压缩了 KafkaOffsetMonitor jar 文件并找到了一个 webdefault.xml 文件。我将 dirAllowed 编辑为 false 但出于某种原因它仍然显示脚本目录的内容。

<init-param>
  <param-name>dirAllowed</param-name>
  <param-value>false</param-value>
</init-param>

我还需要做什么才能不列出目录的内容?我想我真的很接近,只需要再做一件事就可以使上述解决方案正常工作。

不确定这是解决方案还是解决方法。我在 webdefault.xml 文件中将 dirAllowed 设置为 false。我重新压缩了 jar 文件,但由于某种原因,它仍然列出了目录内容。

但是,在每个目录中,我都包含了一个空白 index.html 文件,这似乎阻止了列出目录的内容。