2013-07-26 46 views
0

我有一個Spring MVC(3.2.2)應用程序,我需要檢查請求主體的加密簽名(在請求頭中提供),其中包含類型application/x-www-form-urlencoded的數據如何在Spring MVC中獲得逐字請求體?

我的問題:Spring MVC似乎無法獲得實際的未處理的HTTP請求正文,從而檢查簽名。

  • 當我使用的請求處理方法@RequestBody註釋,我得到的內容,但是各個表單字段都是隨機的順序 - 從解析表單數據顯然再生。
  • 當我使用HttpServletRequest類型的參數,其體爲空
  • 所以是ReaderInputStream參數。

如何防止或繞過請求主體的預處理?

+0

你不能:http://stackoverflow.com/a/2317344/1686330 –

+0

Btw:我認爲這也是爲什麼amz s3簽名是從請求參數的* ordered *列表構建的原因。 –

+0

@Dirk Lachowski:我完全願意在確認簽名之後自行完成參數解析 - 但我需要原始的,未處理的請求主體來做到這一點。 –

回答

0

現在,我使用一個servlet過濾器作爲解決方法 - 它首先在過濾器鏈中,讀取正文內容並將它們放入請求屬性中,然後在控制器中進行檢索。