簡體   English   中英

如何防止在Jetty中列出目錄?

[英]How do I prevent directory listing in Jetty?

基本上,我有這個碼頭服務器在本地運行,在根目錄webapp /下有一堆文件夾/文件。 當前,只需在瀏覽器中輸入http:// localhost:8080 / server-name /即可訪問它們,如下所示:

服務器的靜態目錄

顯然,當用戶轉到該根目錄時,它看起來很丑陋,所以我想知道是否可以阻止此頁面或使用一些友好的消息將其屏蔽。

到目前為止,我已經通過在web.xml中添加安全性約束來使用此方法:

    <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 /文件夾,這當然不是我想要的。 那么是否可以簡單地阻止/屏蔽用戶的頁面而沒有其他影響?

您可以編輯web.xml嗎?

如果是正數,請添加此代碼段

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

就像@josivan和@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>

在此處發布詳細答案。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM