1
消耗我的web服務的應用程序發送無效的soap請求,我的服務無法處理此請求。是否有可能在apache tomcat中操縱原始http-stream?
應用程序發送一個錯誤的標籤(拼寫錯誤),但他們不能改變這種行爲。
所以我的問題:
有一個過濾器或聽者獲得原始HTTP流,改變一些東西,把它放回鏈的可能性。
謝謝亞歷克斯
消耗我的web服務的應用程序發送無效的soap請求,我的服務無法處理此請求。是否有可能在apache tomcat中操縱原始http-stream?
應用程序發送一個錯誤的標籤(拼寫錯誤),但他們不能改變這種行爲。
所以我的問題:
有一個過濾器或聽者獲得原始HTTP流,改變一些東西,把它放回鏈的可能性。
謝謝亞歷克斯
我假設你想改變HTTP請求的傳入正文。沒有簡單的方法來做到這一點。我不知道任何可以讓你「正式」這樣做的Servlet API。
「非正式」你可以在org.apache.catalina.connector.Request
上做一些反思魔術。如果你看看這個對象,你會看到返回實際主體(getReader()
和getInputStream()
)的兩種方法都是在輸入緩衝區的頂部建立流,org.apache.catalina.connector.InputBuffer
的實例。您將不得不操作該緩衝區,以便返回受污染的數據。
不用說,這是一個非常易變和危險的黑客攻擊。沒有保證,這將在下一個Tomcat版本(即使是較小的版本)上工作,並且幾乎不可維護。
我用PHP編寫了一個簡單的代理,那裏獲取洞http數據流非常簡單,操作它並將其放回鏈中。謝謝 – Alex 2010-11-16 07:28:16