我目前正在使用Spring MVC 3.0.6。我的期望是每當在Spring級別拋出任何異常(即 - 在向我的控制器發出請求之前),沒有異常堆棧將作爲響應主體返回。當預期的結果是HTML時,控制轉到包含自定義錯誤消息的錯誤頁面。在這種情況下,結果與我的預期相符。如何避免響應正文中的異常堆棧
但我面臨的問題,而預期的結果是JSON。在這種情況下,我將異常堆棧作爲JSON格式。
EG-
請求的URL - /MyApp/secure/employee/name.json?employee=815009 & .........
讓通過URL篡改看跌員工說= 815003333333333333333333333333333333333333333333333333333333333333333333333333333333339(意味着巨大的有效載荷)。
現在我越來越喜歡的響應 -
{ 「異常」:{ 「值」: 「8150 ......... ..9」, 「錯誤碼」: 「typeMismatch」, 「requiredType」:「長「,」propertyName「:null,」propertyChangeEvent「:null,」message「:」無法將類型'java.lang.String'的值轉換爲所需類型'long';嵌套異常是org.springframework.core.convert。 ConversionFailedException:無法將值「8150 ............ 9」從類型'java.lang.String'轉換爲類型'long';嵌套異常是java.lang.NumberFormatException:對於輸入字符串:\「8150 ......... ............ ..9「,」rootCause「:{」cause「:null,」message「:」對於輸入字符串:\「8150 ........................... 9」,「localizedMessage 「:」對於輸入字符串:\「8150 ............ ..9 \」「,」stackTrace「:[{............... ... ..}]}}
我預期的反應會是怎樣 -
{ 「值」: 「一些自定義錯誤消息」], 「成功」:假}
注意:我的控制器我期望員工在@RequestParam中長(數據類型)。
我擔心的是,由於異常堆棧包含有關從中傳播異常的庫的詳細信息,可能會使我的應用程序從安全角度來看很容易受到攻擊。
有什麼辦法可以返回自定義消息而不是異常堆棧嗎?
向我們展示行爲。 – 2015-02-12 03:51:47
我已更新我的關注。 – user1468495 2015-02-12 05:00:15