2014-02-26 41 views
0

我們在當前的(Spring)Web應用程序中有一個要求,只允許基於CRUD的REST調用(GET,POST,PUT,DELETE)。這是爲了防止跨站腳本攻擊等安全掃描,所以我們必須進行這些更改。如果調用不是這些方法之一,我們希望返回像405一樣的響應。阻止非CRUD REST動詞

我們確實已將所有Controller請求方法映射到它們需要響應的特定方法,但除那些請求之外的請求會返回混合結果。例如,如果我將@RequestMapping定義爲GET,但我嘗試使用OPTIONS方法調用該服務,則得到200響應,但當我使用TRACE調用相同的方法時,我得到了405。我是第一次嘗試從HandlerInterceptorAdapter中編寫一個自定義的攔截器實現,但到那時,上面的兩個例子已經被攔截,所以這個解決方案並不是我們正在尋找的。

用Spring,Java,Tomcat或Apache有什麼選擇可以實現這個功能?

回答

0

請求也可以映射到OPTIONS,TRACEHEAD。爲這些HTTP請求實現方法並返回您選擇的響應,例如405.檢查Spring docs