2012-11-27 38 views
0

我正在運行一個tomcat服務器,它具有映射到/ xxx/* 的過濾器(和一個servlet)我有一個客戶端,它在HTTP標頭上發送// xxx/*作爲uri。結果,servlet和過濾器沒有被調用。 我已經嘗試在/ *捕獲請求過濾器,包裝一個requestWrapper並重寫getURI()和getServletPath()方法(他們只是返回一個單一的URI /誰打電話給誰) 這並不似乎工作,所以我假設,一旦tomcat收到請求,它決定哪些servlet /過濾器應該評估對這個uri甚至發送到第一個過濾器之前。 有沒有辦法解決這個問題?我可以讓每個過濾器之後tomcat重新評估嗎?有另一種方法嗎?如何處理tomcat中的URI前綴?

在此先感謝

+0

請準確告訴我們客戶端發送的請求是什麼樣的。 –

+0

如果servlet無法處理以「//」開頭的請求uri,那似乎是一個奇怪的缺陷。 – irreputable

回答

0

如果請求頭中的URL不符合規範,Tomcat的被投下他們做正確的事。

如果這是問題,您需要修復客戶端,以便它將正確的絕對URL放入HTTP請求中。

「黑客」的Tomcat,使其接受垃圾請求是一個壞主意。它會限制升級平臺的選項,和/或部署在不同的網絡環境中。