2012-03-25 63 views
0

在tomcat的文件擴展名,我需要的文件類型禁止通過瀏覽器訪問限制/允許在tomcat的文件訪問基於通過白名單

我可以做以下

<servlet-mapping> 
    <servlet-name>Error Servlet</servlet-name> 
    <url-pattern>*.log</url-pattern> 
</servlet-mapping> 
<servlet-mapping> 
    <servlet-name>Error Servlet</servlet-name> 
    <url-pattern>*.java</url-pattern> 
</servlet-mapping> 

但不是黑名單像這是否可以做一個我希望允許訪問的類型的白名單?像*的.jsp,*。html的,* .JPEG

謝謝

+0

你做了什麼只是一個解決方法,並不是真正正確的方式 - [看這個答案](http://serverfault.com/questions/28337/how-to-block-access-to-a-file-from-being-served逐Tomcat)的。哦,沒有「白名單」可能 – 2012-03-25 18:39:33

+0

謝謝。我無法理解解決方案。我無法獲得有關Valapp元素的任何信息。你能否詳細說明一下? – javalearner 2012-03-25 18:52:04

+0

這個答案可能有點過時請查看原文檔http://tomcat.apache.org/tomcat-4.0-doc/config/context.html – 2012-03-25 18:57:39

回答

0

你可以簡單地這樣做:

<servlet-mapping> 
     <servlet-name>Servlet</servlet-name> 
     <url-pattern>*.*</url-pattern> 
    </servlet-mapping> 

,並在servlet:

private final String enabled = "^(.)+((\.jsp)|(\.html)|(\.jpeg))$"; 

public void service(...) { 
    if (!request.getRequestURI().matches(enabled)) { 
     response.sendError(401); 
     return; 
    } 
} 
+0

謝謝。我必須將修補程序應用於已經擁有超過200個不同類型文件的tomcat。我認爲使servlet能夠響應允許的文件將是一項複雜而乏味的任務。 – javalearner 2012-03-25 18:50:23

+0

URL模式具有非法語法。 – BalusC 2012-03-25 18:51:26

+0

@BalusC - 我驗證了這種模式 - 它的工作原理。 – 2012-03-25 20:49:30

相關問題