如何防止Jetty中的目录列表?

时间:2016-03-16 17:18:46

标签: java jetty block

基本上我有这个jetty服务器在我的本地运行,在根目录webapp /下有一堆文件夹/文件。 目前,只需在浏览器中输入http://localhost:8080/server-name/即可访问它们,如下所示:

the static directory of the server

显然,当用户访问此根目录时,它看起来非常难看,所以我想知道是否可以阻止此页面或用一些友好的消息来掩盖它。

到目前为止,我通过在web.xml中添加security-constraint来实现此方法:

    <security-constraint>
    <web-resource-collection>
        <web-resource-name>precluded methods</web-resource-name>
        <url-pattern>/css/*</url-pattern>
        <url-pattern>/font/*</url-pattern>
        <url-pattern>/img/*</url-pattern>
        <url-pattern>/libs/*</url-pattern>
        <url-pattern>/mock/*</url-pattern>          
        <url-pattern>/modules/*</url-pattern>
        <url-pattern>/subpage/*</url-pattern>
        <url-pattern>/util/*</url-pattern>          
    </web-resource-collection>
    <auth-constraint />
</security-constraint>

但显然它会阻止用户对上述jsp /文件夹的实际访问,这肯定不是我的意图。 那么是否可以简单地阻止/屏蔽用户的页面而没有任何其他影响?

2 个答案:

答案 0 :(得分:2)

您是否可以修改web.xml

如果是肯定的,请添加此代码段

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

答案 1 :(得分:0)

喜欢@josivan&amp; @Joakim说我需要做的就是添加一个默认的servlet并将标志设置为false

<servlet>
    <servlet-name>default</servlet-name>
    <servlet-class>org.mortbay.jetty.servlet.DefaultServlet</servlet-class>
    <init-param>
        <param-name>dirAllowed</param-name>
        <param-value>false</param-value>
    </init-param>
</servlet>

在此发布详细答案。